我已经搜遍过,无法找到这个问题的答案。
我想让我的代码点击一个按钮。该特定按钮通常需要超过60秒(准确地说是1:27)才能完成下一个项目的加载。
所以我尝试了implicitwait
和scripttimeout
,但它们不起作用,因为“我可能错过了一个使用或引用程序集”,但我已经找到了它,似乎我拥有了我需要的一切所以我认为它可能不再使用了。
所以它看起来像这样:
driver.FindElementByXPath("//*[@id=\"consolidateAll\"]").Click();
我不知道是否可以在点击事件中添加某种等待时间让它等待一段时间或者什么,但我会喜欢一些建议。
谢谢!
答案 0 :(得分:0)
你可以这样做:
// wait for an element to be clickable
WebDriverWait wait = new WebDriverWait(driver, 120);
wait.Until(ExpectedConditions.ElementToBeClickable(driver.FindElementByXPath("//*[@id=\"consolidateAll\"]")));
driver.FindElementByXPath("//*[@id=\"consolidateAll\"]").Click();
为你做了一个功能:
/**
* Wait for an element to be clickable in the dom, then click it.
*/
public void ClickElementSafe(this WebElement element, WebDriver driver, int timeout)
{
// wait for it to be clickable
WebDriverWait wait = new WebDriverWait(driver, timeout);
wait.Until(ExpectedConditions.ElementToBeClickable(element));
// click it
element.Click();
}