我正在尝试单击一个元素并向它发送密钥,但我无法专注于元素错误。我尝试使用操作链,但没有工作。
我可以单击该元素,但是当我发送密钥时,它会抛出"无法专注于元素错误">
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)
"检查元素"页
尝试将单击替换为send_keys(Keys.ENTER)
确保导入键:from selenium.webdriver.common.keys import Keys
。这个解决方案在最近使用 Chromedriver 的脚本上为我工作。
请尝试 Actions 类首先关注元素,然后发送所需的键。
Actions actions = new Actions(driver);
actions.moveToElement(element);
actions.click();
actions.sendKeys("SOME DATA");
actions.build().perform();
使用 Java/Selenium 在 Chrome 和 Edge 中获取无法聚焦元素
使用 JavaScript 执行器将元素滚动到视图中,然后执行单击该元素,如果该元素未显示在可见屏幕上,Chrome 驱动程序无法单击该元素。 即您需要向上或向下滚动元素才能使其显示在屏幕上单击它。
如果这对您有用,请告诉我。
这是我遇到的一个类似的问题,虽然我的解决方案是用 Java 的,但你应该能够获得它的要点并将其翻译成 python
private void scrollToElement(WebElement element){
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
}
我的原始帖子可以在这里找到:WebElement getText(( 是 Firefox 中的一个空字符串,如果元素在屏幕上物理上不可见
希望对您有所帮助