在Selenium WebDriver中按Ctrl + A

问题描述 投票:47回答:13

我需要使用Selenium WebDriver按下Ctrl + A键。有什么办法吗?

我检查了Selenium库,发现Selenium只允许按特殊键和功能键。

selenium selenium-webdriver keypress
13个回答
59
投票

另一个解决方案(在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

0
投票

它对我有用:


0
投票

这是将C#(VS2015)与Selenium一起使用对我有用的方法:


0
投票

通过使用Java中的Robot类:


0
投票
new Actions(driver).SendKeys(Keys.Control+"A").Perform();

11
投票

要单击Ctrl


10
投票

在C#的Selenium中,发送 Actions action = new Actions(); action.keyDown(Keys.CONTROL).sendKeys(String.valueOf('\u0061')).perform(); 只是切换Control


4
投票

您可以尝试以下方法:


3
投票

因为Ctrl


3
投票

对于Python:


1
投票

C#中最简单的答案(如果您倾向于C#)。


0
投票
ActionChains(driver).key_down(Keys.CONTROL).send_keys("a").key_up(Keys.CONTROL).perform();

0
投票

我发现在ruby中,您可以将两个参数传递给Actions action = new Actions(); action.KeyDown(OpenQA.Selenium.Keys.Control).SendKeys("a").KeyUp(OpenQA.Selenium.Keys.Control).perform();

© www.soinside.com 2019 - 2024. All rights reserved.