【发布时间】:2016-11-26 12:05:00
【问题描述】:
我正在尝试使用 webdriver wait 单击页面上可见的按钮,但 webdriver 只有在我将
Thread.sleep添加到代码后才能单击该按钮。在执行我的代码之前,我还检查了按钮是否可见 (True),而它又是
returns = true。
//按钮可见性检查:
List<WebElement> signOutList = driver.findElements(.xpath(".//*[starts-with(@id,'fulfillment-time-type-section-')]/div[2]//button"));
Assert.assertTrue(signOutList.size() > 0);
//下面的代码没有点击按钮
By timeDropdownButton = By.xpath(".//*[starts-with(@id,'fulfillment-time-type-section-')]/div[2]//button");
WebElement myDynamicElement = (new WebDriverWait(driver, 10))
.until(ExpectedConditions.elementToBeClickable(timeDropdownButton));
myDynamicElement.click();
//下面的代码是否点击了按钮:
Thread.sleep(500);
By timeDropdownButton = By.xpath(".//*[starts-with(@id,'fulfillment-time-type-section-')]/div[2]//button");
WebElement myDynamicElement = (new WebDriverWait(driver, 10))
.until(ExpectedConditions.elementToBeClickable(timeDropdownButton));
myDynamicElement.click();
请注意,我还尝试使用 JS 代码和 WebDriver 操作等单击按钮
我不知道为什么“Wait Clickable”只有在与“Thread.sleep”结合使用时才有效?
【问题讨论】:
-
您是否尝试过将时间从 10 秒增加到更多..???
-
嗨 Saurabh,我尝试了以下代码,但仍然无法正常工作(从 10 更改为 1000):WebElement myDynamicElement = (new WebDriverWait(driver, 1000))
-
尝试使用
ExpectedConditions.visibilityOfElementLocated..告诉我.. -
感谢您帮助 Saurabh,恐怕即使尝试 ExpectedConditions.visibilityOfElementLocated 它仍然不起作用
-
你能分享一下发生了什么异常吗??
标签: java selenium selenium-webdriver webdriver wait