如何使用 Selenium WebDriver 关闭模式?

我有一个下拉列表,当我点击任何下拉值时,一个模态会打开,当我在模态外点击时,它会关闭。如何用 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();

但两者都不起作用。


阿晨1998
浏览 197回答 3
3回答

紫衣仙女

如果您不想按 Esc 键,您可以单击已创建的 div,以使用以下方法覆盖页面的其余部分:&nbsp; &nbsp; driver.get("https://demo.stqatools.com/MouseHover.php");&nbsp; &nbsp; WebElement hoverButton = driver.findElement(By.cssSelector(".dropbtn"));&nbsp; &nbsp; WebElement linkOne = driver.findElement(By.cssSelector(".dropdown-content > a"));&nbsp; &nbsp; //Activate modal dialogue&nbsp; &nbsp; Actions action = new Actions(driver);&nbsp; &nbsp; action.moveToElement(hoverButton).perform();&nbsp; &nbsp; wait.until(ExpectedConditions.visibilityOf(linkOne));&nbsp; &nbsp; action.moveToElement(linkOne).click().perform();&nbsp; &nbsp; //Dismiss modal dialogue&nbsp; &nbsp; driver.findElement(By.cssSelector(".show")).click();

慕运维8079593

这不是警报,它只是一个普通的DOM片段,由于CSS 样式,它看起来像一个模态弹出窗口因此,您需要做的就是使用例如它的文本来定位元素,相关的XPath 定位器类似于://div[contains(text(),'You&nbsp;click&nbsp;on&nbsp;Dropdown&nbsp;hover&nbsp;Option')]通过WebDriverWait来“等待”直到弹出窗口存在/难处理也很好,例如:new&nbsp;org.openqa.selenium.support.ui.WebDriverWait(driver,&nbsp;10) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.until( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExpectedConditions.elementToBeClickable( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;By.xpath("//div[contains(text(),'You&nbsp;click&nbsp;on&nbsp;Dropdown&nbsp;hover&nbsp;Option')]"))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.click();

素胚勾勒不出你

最简单的方法——点击页面上的一些静态文本。尝试点击页面标题(如果存在)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java