Javascript 元素无法位于(x,y):如何修复需要逐个单击的WebElement列表
我被分配了一个项目,要求我从用户那里获取输入,从网站中获取输入并存储在数据库中,然后在后续请求中,使用机器学习重新排列保存在数据库中的所有数据,为用户提供基于其过去行为的选择 我要浏览的网站是TripAdvisor.it 我目前正在处理网页抓取部分,特别是,我正在通过从页面获取景点列表来填充我的数据库,然后分别单击每个景点,这样我就可以保存与每个景点相关的所有数据 我经常遇到错误“未知错误:元素在点(x,y)处不可单击;” 我想可能是javascript没有完全加载到tripadvisor页面上的问题,所以我在这里调查了stackoverflow的各种可能性,并尝试添加一个显式等待,但它不起作用。 我尝试过的其他事情:Javascript 元素无法位于(x,y):如何修复需要逐个单击的WebElement列表,javascript,java,google-chrome,selenium-webdriver,Javascript,Java,Google Chrome,Selenium Webdriver,我被分配了一个项目,要求我从用户那里获取输入,从网站中获取输入并存储在数据库中,然后在后续请求中,使用机器学习重新排列保存在数据库中的所有数据,为用户提供基于其过去行为的选择 我要浏览的网站是TripAdvisor.it 我目前正在处理网页抓取部分,特别是,我正在通过从页面获取景点列表来填充我的数据库,然后分别单击每个景点,这样我就可以保存与每个景点相关的所有数据 我经常遇到错误“未知错误:元素在点(x,y)处不可单击;” 我想可能是javascript没有完全加载到tripadvisor页面上
.visibilityOf(WebElement元素)
而不是.element可选择(WebElement elem)
因为我意识到.getNumberOfElementsFound(driver,locator)
方法实际上可以找到页面上的所有30个元素。我仍然收到相同的错误“元素无法定位在(x,y)…”...
By locator = By.xpath("//a[contains(@class, 'attractions-attraction-overview-main-TopPOIs__name')]");
int numberOfElementsFound = getNumberOfElementsFound(driver, locator);
for (int pos = 0; pos < numberOfElementsFound; pos++) {
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.elementToBeClickable(getElementWithIndex(driver, locator, pos))).click();
...
}
。。。
By locator=By.xpath(//a[contains(@class,'attractions-attraction-overview-main-TopPOIs\uu name'));
int numberOfElementsFound=getNumberOfElementsFound(驱动程序、定位器);
对于(int pos=0;pos
下面是错误的完整信息:
org.openqa.selenium.WebDriverException:未知错误:元素。。。在点(360、14)处不可单击。其他元素将收到单击:
是指向我正在处理的实际网页的链接,如果有帮助的话
我对javascript是罪魁祸首的评估正确吗?我的结论可能是,因为当我在实际页面上搜索标记“ui\u column wrap\u column responsive\u inline\u hidden label\u column”时,我找不到它
我应该如何修复此错误?其他元素将收到单击错误的原因有很多;但一般来说,这是因为屏幕上添加了一些内容 我的第一个猜测是,顶部导航的一个下拉菜单被触发,导致您试图单击的内容顶部出现覆盖 我注意到,当我在顶部导航的“Firenze”上方悬停时,下拉菜单覆盖了“Gite di un giorno”图像的一部分。因此,如果在加载页面时,自动化系统认为光标位于“Firenze”上,则会出现下拉列表,自动化系统将单击下拉列表,而不是导致错误消息的图像 如果是这样的话,在点击任何链接之前,你应该先做我称之为“clickOut”的方法。“clickOut”是一种一次性方法,只需单击
标记即可。当屏幕上出现弹出窗口时,如果您在弹出窗口外单击,这些窗口将消失,它们非常有用。但在这种情况下,它实际上会移动光标,并导致任何下拉列表消失
这是一个很长的机会,但我已经在建筑测试中见过很多次了