当前位置: 首页 > 面试题库 >

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

弓华茂
2023-03-14
问题内容

我编写了自动化脚本来测试在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秒钟,以便您可以单击您的元素。



 类似资料:
  • 我正在使用硒进行测试。我想点击一个元素。元素非常可点击和可见,但元素的中间点被遮挡,导致错误。 这是一个主视频: 超文本标记语言代码(链接到演示): Python selenium代码: 结果: 这似乎是硒的一个相当可悲的限制。按钮是可点击的,但不是在所有点。我不想摆弄滚动和坐标。 一般来说,关于异常有许多类似的问题,例如: 无法单击元素:元素单击碎片/硒中的异常 硒不能点击元素,因为其他元素掩盖

  • 我是的新手,需要检查元素是否可以在中单击,因为在和上都传递。 我尝试使用以下代码,但不起作用:

  • 问题内容: 我必须选中以下HTML代码段中包含的复选框。该复选框包含在输入标签中 我已经尝试过各种方法来识别并选择它,但是它从来都不可见。我已将复选框标签的文本打印到控制台,因此无法理解为什么复选框本身不可见。以下Java代码成功打印了标签,但未能单击复选框,并抛出错误元素不可见。 我尝试了不同的等待,但均未成功。 任何人都可以在这里向我指出正确的方向 谢谢。 问题答案: 尝试使用javascri

  • 问题内容: 我想单击一个单选按钮,出现在网页上。代码如下: HTML代码: Tesstcase: 此测试通过错误: 1)量角器演示应用检查项目数 信息: 失败:元素不可见 我也尝试过: 它给出了错误: [16:16:26] E / launcher-参数列表后出现错误:SyntaxError:缺少) 请提出建议,单选按钮将如何获得点击? 问题答案: 在使用硒进行测试自动化中,这是一个相当普遍的问题

  • 我想点击一个单选按钮,出现在网页上。代码如下所示: HTML代码: 泰斯特案例: 此测试通过错误: 1)量角器演示应用程序检查项目计数 消息: 失败:元素不可见 我还尝试了: 它给出错误: [16:16:26]E/启动器-参数列表后的错误:语法错误:缺失) 请建议,单选按钮将如何获得点击?