无法使用Java通过Selenium Webdriver关闭HTML对话框
下面是我的HTML代码,我正在尝试使用SeleniumWebDriver关闭对话框无法使用Java通过Selenium Webdriver关闭HTML对话框,java,jquery,selenium,Java,Jquery,Selenium,下面是我的HTML代码,我正在尝试使用SeleniumWebDriver关闭对话框 <div class="ui-dialog dialog "> <div class="od-ui-dialog-content dialog_content"> <div class="od-ui-dialog-box ui_dialog_box"> <div class="od-ui-dialog-image-abc”></
<div class="ui-dialog dialog ">
<div class="od-ui-dialog-content dialog_content">
<div class="od-ui-dialog-box ui_dialog_box">
<div class="od-ui-dialog-image-abc”></div>
<div class="od-ui-dialog-box-header dialog_box_header"></div>
<div class="dialog_close_abc od-ui-dialog-abc”>
<span class="od-ui-dialog-close-abc”>r</span>
<div class="od-ui-dialog-box-content "></div>
<div class="od-ui-dialog-box-footer dialog_footer">
</div> </div> </div>
但它不起作用
当您选择跨度时,它可能还不可见。 你应该等到它出现。你可以这样做。(在C#中,但您可以轻松地将其转换为java)
以下是你问题的答案: 根据您提供的HTML,您可以使用以下代码行关闭对话框:
driver.findElement(By.xpath("//span[@class='od-ui-dialog-close-abc' and text()='r']")).click();
如果您面临element不可见
异常,您可以诱导ExplicitWait
等待该元素可单击,如下所示:
WebDriverWait wait8 = new WebDriverWait(driver, 10);
WebElement element8 = wait8.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[@class='od-ui-dialog-close-abc' and text()='r']")));
element8.click();
如果这回答了您的问题,请告诉我。您是否可以添加关闭对话框的Java代码?另外,如果您可以添加一些周围的HTML以查看对话框的详细信息,则在交互时跨度不可见的原因之一是您可能需要等待一些事件,然后再选择跨度,以便它可以可见、可单击等
driver.findElement(By.xpath("//span[@class='od-ui-dialog-close-abc' and text()='r']")).click();
WebDriverWait wait8 = new WebDriverWait(driver, 10);
WebElement element8 = wait8.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[@class='od-ui-dialog-close-abc' and text()='r']")));
element8.click();