gpt4 book ai didi

ajax - Selenium WebDriver-确定元素是否可单击(即,不会被dojo模态灯箱遮盖)

转载 作者:行者123 更新时间:2023-12-03 13:55:19 26 4
gpt4 key购买 nike

我编写了自动化脚本来测试在ajax上非常繁琐的Web应用程序。例如,在保存设置时,将显示一个模式对话框,显示文本“ Saving...”,而灯箱将使页面的其余部分变灰。

我的测试脚本试图在消息消失之前单击测试中的下一个链接。在驱动Firefox时,它几乎总是可以工作,但是在驱动Chrome时,会显示以下错误:

Exception in thread "main" org.openqa.selenium.WebDriverException: Element is not clickable at point (99.5, 118.5). Other element would receive the click: <div class="dijitDialogUnderlay _underlay" dojoattachpoint="node" id="lfn10Dijit_freedom_widget_common_environment_Dialog_8_underlay" style="width: 1034px; height: 1025px; "></div> (WARNING: The server did not provide any stacktrace information)


发生这种情况是因为灯箱遮挡了我要单击的元素。我想等待灯箱消失,然后再尝试点击链接。

检查灯箱不再存在不是有效的解决方法,因为有时会出现多个级别的模式对话框和灯箱,并且没有容易的方法来区分它们。

Selenium中是否有一种方法可以检测该元素是否可单击(没有其他元素遮挡它)?尝试/捕获将是一种解决方法,但我更愿意进行适当的检查(如果可能)。

最佳答案

使用WebDriverWait条件。

    WebDriverWait wait = new WebDriverWait(yourWebDriver, 5);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//xpath_to_element")));


Webdriver将等待5秒钟,以便您可以单击您的元素。

关于ajax - Selenium WebDriver-确定元素是否可单击(即,不会被dojo模态灯箱遮盖),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9878478/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com