我需要使用Selenium WebDriver按下Ctrl + A键。有什么办法吗?
我检查了Selenium库,发现Selenium只允许按特殊键和功能键。
另一个解决方案(在Java中,因为您没有告诉我们您的语言-但对于具有Keys
类的所有语言,它的工作方式相同:]]
String selectAll = Keys.chord(Keys.CONTROL, "a"); driver.findElement(By.whatever("anything")).sendKeys(selectAll);
您可以使用它来选择
<input>
或整个页面中的整个文本(只需找到html
元素并将其发送给它即可。
EDIT
-OP声明他正在使用Selenium Ruby绑定之后在Ruby绑定中chord()
中没有Keys
class方法。因此,根据Hari Reddy的建议,您必须使用Selenium Advanced用户交互API,请参见Keys
:
ActionBuilder
它对我有用:
这是将C#(VS2015)与Selenium一起使用对我有用的方法:
通过使用Java中的Robot类:
new Actions(driver).SendKeys(Keys.Control+"A").Perform();
要单击Ctrl
在C#的Selenium中,发送 Actions action = new Actions();
action.keyDown(Keys.CONTROL).sendKeys(String.valueOf('\u0061')).perform();
只是切换Control
您可以尝试以下方法:
因为Ctrl
对于Python:
C#中最简单的答案(如果您倾向于C#)。
ActionChains(driver).key_down(Keys.CONTROL).send_keys("a").key_up(Keys.CONTROL).perform();
我发现在ruby中,您可以将两个参数传递给Actions action = new Actions();
action.KeyDown(OpenQA.Selenium.Keys.Control).SendKeys("a").KeyUp(OpenQA.Selenium.Keys.Control).perform();