Selenium Key Press无法在Firefox中运行

时间:2018-04-19 03:30:54

标签: python python-2.7 selenium sendkeys

我正在构建一个网络爬虫程序包,我正在尝试使用selenium进行一些按键操作。但是,我发现像Keys.SHIFTKeys.CONTROL这样的密钥根本不起作用。但如果我手动按下它们,它们就会起作用。 我在下面尝试了两行代码,但都没有。

ac.key_down(Keys.LEFT_SHIFT).send_keys(Keys.F2).key_up(Keys.LEFT_SHIFT).perform()
elem1.send_keys(Keys.SHIFT+Keys.F2)

我试图在Firefox中打开开发人员工具

2 个答案:

答案 0 :(得分:0)

要按shift& F2键,请使用以下代码:

driver.FindElement(By.XPath(" Xpath loaction")).SendKeys(Keys.LeftShift);
driver.FindElement(By.XPath(" Xpath loaction")).SendKeys(Keys.F2);

答案 1 :(得分:0)

根据您的版本(浏览器,浏览器驱动程序,selenium等)检查此帖子https://github.com/mozilla/geckodriver/issues/665,这些帖子总是明智地包括在任何问题中),它可能是控制键的geckodriver的已知错误。

该帖子包括以不同的方式创建和弦,使用:

List<CharSequence> keyWithModifiers = new ArrayList<CharSequence>();
keyWithModifiers.add(Keys.CONTROL);
keyWithModifiers.add("a");
String ctrlA = Keys.chord(keyWithModifiers);
textFieldElem.sendKeys(ctrlA);

这种方法适用于我使用Selenium 3.7.1 Java绑定,gecko驱动程序0.18.0(64位)和Firefox 57.0.2 - 59.0