为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Selenium WebDriver 关闭模式?

如何使用 Selenium WebDriver 关闭模式?

阿晨1998 2023-02-16 15:12:38
我有一个下拉列表,当我点击任何下拉值时,一个模态会打开,当我在模态外点击时,它会关闭。如何用 Selenium WebDriver 处理它?这是我的模态代码<div class="modal fade bd-example-modal-sm show" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" style="display: block;">   <div class="modal-dialog modal-sm">      <div class="modal-content">You click on Dropdown hover Option      </div>   </div>我试过下面的代码driver.switchTo().defaultContent();和driver.switchTo().alert().dismiss();但两者都不起作用。
查看完整描述

3 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

如果您不想按 Esc 键,您可以单击已创建的 div,以使用以下方法覆盖页面的其余部分:


    driver.get("https://demo.stqatools.com/MouseHover.php");

    WebElement hoverButton = driver.findElement(By.cssSelector(".dropbtn"));

    WebElement linkOne = driver.findElement(By.cssSelector(".dropdown-content > a"));


    //Activate modal dialogue

    Actions action = new Actions(driver);

    action.moveToElement(hoverButton).perform();

    wait.until(ExpectedConditions.visibilityOf(linkOne));

    action.moveToElement(linkOne).click().perform();


    //Dismiss modal dialogue

    driver.findElement(By.cssSelector(".show")).click();


查看完整回答
反对 回复 2023-02-16
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

这不是警报,它只是一个普通的DOM片段,由于CSS 样式,它看起来像一个模态弹出窗口

因此,您需要做的就是使用例如它的文本来定位元素,相关的XPath 定位器类似于:

//div[contains(text(),'You click on Dropdown hover Option')]

通过WebDriverWait来“等待”直到弹出窗口存在/难处理也很好,例如:

new org.openqa.selenium.support.ui.WebDriverWait(driver, 10)
        .until(
                ExpectedConditions.elementToBeClickable(
                        By.xpath("//div[contains(text(),'You click on Dropdown hover Option')]")))
        .click();


查看完整回答
反对 回复 2023-02-16
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

最简单的方法——点击页面上的一些静态文本。尝试点击页面标题(如果存在)。



查看完整回答
反对 回复 2023-02-16
  • 3 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信