我试图点击一个元素并发送键给它但我得到的不能专注于元素错误。我尝试使用动作链,但没有工作。
我能够点击该元素但是当我发送密钥时它会抛出"无法关注元素错误"
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)
答案 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