【问题标题】:Unable to locate dynamic button on dialog box无法在对话框中找到动态按钮
【发布时间】:2019-04-02 01:48:26
【问题描述】:

我尝试在点击搜索后定位一个动态按钮元素,但找不到它。创建帐户 CID 有时不可单击,有时可以单击。

<div class="pzbtn-rgt" data-click="...">
<div class="pzbtn-mid" data-click="....">
<img src="https://10.204.137.86:5111/prweb/PRWebLDAP3/SstGGrXNazw%5B*/webwb/zblankimage.gif" alt="" class="pzbtn-i">
Create Individual CID
<img alt="" src="https://10.204.137.86:5111/prweb/PRWebLDAP3/SstGGrXNazw%5B*/webwb/zblankimage.gif" class="pzbtn-i">

创建个人CID是需要点击的。 我使用绝对 xpath,但它仍然失败。我试过很多方法。请帮忙。谢谢。

WebDriverWait waitCIDBtn = new WebDriverWait(driver, 10);
waitCIDBtn.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("/html/body/div[3]/div[4]/div/div/form/div[1]/div/div/div/div/div[1]/table/tbody/tr/td/div[2]/table/tbody/tr/td/div/div/span/div/div[4]/div/div/div/div[4]/div/div/span/button/div/div/div/div")));
WebElement createCID = driver.findElement(By.xpath("/html/body/div[3]/div[4]/div/div/form/div[1]/div/div/div/div/div[1]/table/tbody/tr/td/div[2]/table/tbody/tr/td/div/div/span/div/div[4]/div/div/div/div[4]/div/div/span/button/div/div/div/div"));
createCID.click();

【问题讨论】:

    标签: java selenium xpath css-selectors webdriverwait


    【解决方案1】:

    当您尝试在元素上调用 click() 时,您需要使用 elementToBeClickable() 而不是使用 visibilityOfElementLocated(),您可以使用以下任一 Locator Strategies: p>

    • 使用cssSelector

      new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.pzbtn-mid>img.pzbtn-i[src*='zblankimage']"))).click();
      
    • 使用xpath

      new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='pzbtn-mid']/img[@class='pzbtn-i' and contains(@src, 'zblankimage')]"))).click();
      

    【讨论】:

    • 太好了,你能用你当前的代码试验和错误堆栈跟踪更新问题吗?
    • org.openqa.selenium.TimeoutException:预期条件失败:等待元素可点击:By.cssSelector:div.pzbtn-mid>img.pzbtn-i[src*='zblankimage'] (尝试 20 秒,间隔 500 毫秒)
    • 该元素一开始是不可见的,但搜索后就会可见。
    • @nicholas TimeoutExceptionfailed ExpectedConditions 的结果。通过findElement()Thread.sleep() 结合使用来调试您的代码。如果您能够找到该元素,请使用观察结果更新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 2018-09-22
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多