jquery.show 和 WebDriverException 之后的元素:未知错误:无法聚焦元素

我的 javascript 行:

$('#name').show();

我的网络驱动程序代码行:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("name"))).sendKeys("Some Name");

当我运行测试时,它会引发以下异常:

WebDriverException: unknown error: cannot focus element

所以,我一直在寻找解决方案。在铬谷歌代码网站报告了一些问题。有很多关于使用的建议。但对我来说,这似乎不是一个更好的解决方案,因为它可以使浏览器依赖于代码。JavaScriptExecutor


答案 1

几个小时后,我终于找到了一个解决方案,通过使用没有JavascriptExecuter的Actions:

Actions actions = new Actions(driver);
actions.moveToElement(website);
actions.click();
actions.sendKeys("Some Name");
actions.build().perform();

嗯,它对我有用。但是,这种方式是更好的解决方案吗?


答案 2

派对有点晚了,但是那些在python下使用硒时寻找这个问题的解决方案的人可以使用以下代码:

actions = webdriver.ActionChains(driver)
actions.move_to_element(my_div)
actions.click()
actions.send_keys("Some name") # Replace with whichever keys you want.
actions.perform()

Where 是您之前选择的元素,可能使用如下代码:my_div

my_div = item.find_element_by_css_selector("div.foobar")