Selenium Webdriver-无法在模式对话框中找到元素

时间:2019-09-03 08:21:59

标签: java selenium selenium-webdriver modal-dialog

我无法在对话框页面上找到按钮,我尝试使用cssselectors,xpaths,但是很简单,我无法在模式对话框上找到按钮/文本。

我附上了代码的屏幕截图。

您能推荐什么?

谢谢!

Source

5 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

        JavascriptExecutor js= (JavascriptExecutor) driver;
        WebElement webElement=driver.findElement(By.cssSelector("div.modal-footer button.btn.btn-default"));
        js.executeScript(“arguments[0].click()”, webElement);

希望有帮助。

答案 1 :(得分:1)

By.xpath(".//button[.='/"Submit/"']) 

By.xpath(".//button[@class='btn btn-default']) 

如果找到但单击不起作用,请尝试使用其他注释中的javascript

答案 2 :(得分:0)

尝试下面的%load_ext sql import cx_Oracle %sql oracle+cx_oracle://system:welcome1@localhost/?service_name=soe %sql select 1 from blah

xpath

答案 3 :(得分:0)

尝试Alert alert = driver.switchTo().alert(); alert.accept();

driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); 在要加载模式窗口的实际代码之前

或 如果这些方法不起作用,可以在控制台中共享该错误吗?

答案 4 :(得分:0)

我认为您可以识别该元素,但是无法单击。 尝试使用以下选项。

  1. 使用WebDriverWaitelementToBeClickable单击元素。
WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement elementBtn = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.modal-footer button.btn.btn-default")));
elementBtn.click();
  1. 使用Action类单击元素。
WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement elementBtn = wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.modal-footer button.btn.btn-default")));
Actions action=new Actions(driver);
action.moveToElement(elementBtn).click().build().perform();

  1. 单击该元素的Java脚本执行器。
JavascriptExecutor js= (JavascriptExecutor) driver; 
js.executeScript("arguments[0].click();", driver.findElement(By.cssSelector("div.modal-footer button.btn.btn-default")));

注意:如果上述所有选项都不起作用,请检查是否有iframe可用。如果是,则需要先切换到iframe,如下所示。

driver.switchTo().frame("framename"); //name of the iframe.
driver.switchTo().frame(0); //you can use index as well.