首页 > 解决方案 > 无法定位元素 - Java/Selenium

问题描述

我正在尝试选择下面突出显示的元素(这是一个“窗口关闭”按钮):

在此处输入图像描述 页面上还有另一个带有 class='icon-Dismiss' 的元素,但没有带有 class='dialog-close' 的元素。

到目前为止我已经尝试过:

driver.findElement(By.xpath("//*[@class='icon-Dismiss' and @class='dialog-close']"))
driver.findElement(By.className("dialog-close"))
driver.findElement(By.xpath("//*[@id='contentBox']"))

但是,在所有情况下,我都会收到以下错误:

no such element: Unable to locate element

有谁知道我如何选择这个元素?

标签: javaselenium

解决方案


您需要根据需要诱导WebDriverWaitelementToBeClickable()并且可以使用以下任一Locator Strategies

  • cssSelector

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.contentBox div.icon-Dismiss.dialog-close"))).click();
    
  • xpath

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@id='contentBox']//div[@class='icon-Dismiss dialog-close']"))).click();
    

推荐阅读