我有一个关于 Selenium 的问题, 我尝试填写一个表单,输入文本的id是://input[@id='company']。 在 selenium 中,我收到有关未找到此元素的错误:
Sun Sep 22 18:13:27 IDT 2019:ERROR: no such element: Unable to locate element: {"method":"id","selector":"//input[@id='company']"}
(Session info: chrome=76.0.3809.132)
(Driver info: chromedriver=2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91),platform=Windows NT 6.1.7601 SP1 x86_64)
这是我的方法
public static void inputValueById(String input,String id)
{
WebElement element = getWebElementByIdWithWaitToBeSeen(id);
element.click();
element.clear();
element.sendKeys(input);
}
问题是 selenium 找不到该元素,它在开发工具中找到它,如您所见
最佳答案
此错误消息...
Sun Sep 22 18:13:27 IDT 2019:ERROR: no such element: Unable to locate element: {"method":"id","selector":"//input[@id='company']"}
(Session info: chrome=76.0.3809.132)
(Driver info: chromedriver=2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91),platform=Windows NT 6.1.7601 SP1 x86_64)
...意味着 ChromeDriver 无法找到所需的元素。
您需要注意以下几点:
- Locator Strategy您使用的不是
id
,而是 xpath - 虽然您使用的是
chrome=76.0
,但chromedriver=2.36
太旧了。
解决方案
- 对于
//input[@id='company']
的选择器值,更改方法如“xpath”
。 - 确保JDK升级到当前级别 JDK 8u222 .
- 确保 Selenium 升级到当前级别 Version 3.141.59 .
- 确保 ChromeDriver 已更新至当前版本 ChromeDriver v77.0级别。
- Chrome 已更新至当前 Chrome 版本 77.0 级别。 (根据 ChromeDriver v77.0 release notes )
关于java - 通过 ID 查找元素无法识别 - Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58050613/