不能使用硒聚焦元素

时间:2017-08-01 15:55:49

标签: python selenium selenium-webdriver pycharm selenium-chromedriver

我试图点击一个元素并发送键给它但我得到的不能专注于元素错误。我尝试使用动作链,但没有工作。

我能够点击该元素但是当我发送密钥时它会抛出"无法关注元素错误"

D = C.find_element_by_xpath('//*[@id="pcsTableId"]/tbody/tr[9]/td[4]')
>>> D.click()
>>> D.send_keys("4556741")
WebDriverException: Message: unknown error: cannot focus element
(Session info: chrome=59.0.3071.115)

inspect element page

4 个答案:

答案 0 :(得分:1)

尝试使用send_keys(Keys.ENTER)替换您的点击,请务必导入密钥:from selenium.webdriver.common.keys import Keys。这个解决方案适用于我最近使用Chromedriver的脚本。

答案 1 :(得分:0)

使用JavaScript执行器将元素滚动到视图中,然后单击元素,如果元素未显示在可见屏幕上,则chrome驱动程序无法单击该元素。即你需要向上或向下滚动元素,以便在屏幕上显示单击它。

如果这对您有用,请告诉我。

答案 2 :(得分:0)

这是我遇到的类似问题,虽然我的解决方案是Java,你应该能够得到它的要点并将其转换为python

private void scrollToElement(WebElement element){
     ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
}

我的原始帖子可在此处找到:WebElement getText() is an empty string in Firefox if element is not physically visible on the screen

希望它可以帮助你

答案 3 :(得分:0)

请尝试使用Actions类首先关注元素,然后发送所需的键。

Actions actions = new Actions(driver);
actions.moveToElement(element);
actions.click();
actions.sendKeys("SOME DATA");
actions.build().perform();

getting cannot focus element in chrome and edge using java/selenium