Java 如何处理SeleniumWebDriver中单击按钮的对话框窗口

Java 如何处理SeleniumWebDriver中单击按钮的对话框窗口,java,selenium-webdriver,junit4,Java,Selenium Webdriver,Junit4,我正试图单击对话框中的“确定”按钮。如何查找xpath以查找按钮并单击以关闭窗口。它不在任何Iframe中。 这是我的密码: ` 警告信息 请确认更换仓库 你想继续吗? 请确认更换客户 你想继续吗? 对 ` 警告信息 请确认更换仓库 你想继续吗? 请确认更换客户 你想继续吗? 对 您应该能够通过ID进行匹配: //button[@id="warehouseOk"] 引用了一些有用的HTML XPath查询示例。您应该能够通过ID进行匹配: //button[@id="warehous

我正试图单击对话框中的“确定”按钮。如何查找xpath以查找按钮并单击以关闭窗口。它不在任何Iframe中。 这是我的密码:

`
警告信息
请确认更换仓库


你想继续吗? 请确认更换客户

你想继续吗? 对 ` 警告信息 请确认更换仓库

你想继续吗? 请确认更换客户

你想继续吗? 对
您应该能够通过ID进行匹配:

//button[@id="warehouseOk"]

引用了一些有用的HTML XPath查询示例。

您应该能够通过ID进行匹配:

//button[@id="warehouseOk"]

引用了一些有用的HTML XPath查询示例。

我认为您将同一个对话框窗口粘贴了两次HTML。假设只有一个对话框窗口

您应该尝试使用
WebDriverWait
等待对话框窗口出现,并启用单击所需元素,如下所示:-

WebDriverWait wait = new WebDriverWait(driver, 10);
  • 如果要单击
    Yes
    按钮,请尝试:-

    wait.until(ExpectedConditions.elementToBeClickable(By.id("warehouseOk"))).click();
    
    wait.until(ExpectedConditions.elementToBeClickable(By.id("cancelDialog"))).click();
    
    wait.until(ExpectedConditions.elementToBeClickable(By.id("close"))).click();
    
  • 如果要单击
    按钮,请尝试:-

    wait.until(ExpectedConditions.elementToBeClickable(By.id("warehouseOk"))).click();
    
    wait.until(ExpectedConditions.elementToBeClickable(By.id("cancelDialog"))).click();
    
    wait.until(ExpectedConditions.elementToBeClickable(By.id("close"))).click();
    
  • 如果您想单击
    关闭
    按钮,请尝试:-

    wait.until(ExpectedConditions.elementToBeClickable(By.id("warehouseOk"))).click();
    
    wait.until(ExpectedConditions.elementToBeClickable(By.id("cancelDialog"))).click();
    
    wait.until(ExpectedConditions.elementToBeClickable(By.id("close"))).click();
    

注意:-无需使用
xpath
定位器,使用
By.id()
定位器可以轻松定位所需元素。

我认为您粘贴了两次相同的对话框窗口HTML。假设只有一个对话框窗口

您应该尝试使用
WebDriverWait
等待对话框窗口出现,并启用单击所需元素,如下所示:-

WebDriverWait wait = new WebDriverWait(driver, 10);
  • 如果要单击
    Yes
    按钮,请尝试:-

    wait.until(ExpectedConditions.elementToBeClickable(By.id("warehouseOk"))).click();
    
    wait.until(ExpectedConditions.elementToBeClickable(By.id("cancelDialog"))).click();
    
    wait.until(ExpectedConditions.elementToBeClickable(By.id("close"))).click();
    
  • 如果要单击
    按钮,请尝试:-

    wait.until(ExpectedConditions.elementToBeClickable(By.id("warehouseOk"))).click();
    
    wait.until(ExpectedConditions.elementToBeClickable(By.id("cancelDialog"))).click();
    
    wait.until(ExpectedConditions.elementToBeClickable(By.id("close"))).click();
    
  • 如果您想单击
    关闭
    按钮,请尝试:-

    wait.until(ExpectedConditions.elementToBeClickable(By.id("warehouseOk"))).click();
    
    wait.until(ExpectedConditions.elementToBeClickable(By.id("cancelDialog"))).click();
    
    wait.until(ExpectedConditions.elementToBeClickable(By.id("close"))).click();
    

注意:-无需使用
xpath
定位器,可以使用
By.id()
定位器轻松定位所需元素。

提供的HTML中存在多个是/否按钮,您要定位并单击哪个按钮?提供的HTML中存在多个是/否按钮,您要查找并单击哪一个??