首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态等待元素变得可点击不工作

动态等待元素变得可点击不工作
EN

Stack Overflow用户
提问于 2021-06-03 07:20:00
回答 3查看 547关注 0票数 0

我编写了一个函数如下

代码语言:javascript
复制
public static WebElement waitForElementToBeClickable(WebDriver driver, WebElement webElement, int seconds) {
    
    WebDriverWait wait = new WebDriverWait(driver, seconds);
    WebElement element = wait.until(ExpectedConditions.elementToBeClickable(webElement));
    element.click();
    return element;
    
}

现在,我将导入这个函数并使用它,如下所示

代码语言:javascript
复制
private String loginButton = "btnActive";
private String home = "//a[@id='pt1:_UIShome']";
WebElement login = driver.findElement(By.id(loginButton));
libraryUtils.waitForElements.waitForElementToBeClickable(driver, login, 20).click();
WebElement homeButton = driver.findElement(By.xpath(home));
libraryUtils.waitForElements.waitForElementToBeClickable(driver, homeButton, 20).click();

单击登录按钮,但在进入下一页后,我得到以下错误-

org.openqa.selenium.StaleElementReferenceException:陈旧元素引用:元素未附加到页面文档

Xpath是正确的,我已经检查过了。当我使用element.click()时,这也有效,但这需要我手动输入睡眠时间,这就是我要做的。我希望这是动态的。感谢任何帮助或建议。

EN

Stack Overflow用户

发布于 2021-06-03 16:13:24

这里的问题是,您已经在waitForElementToBeClickable函数中执行waitForElementToBeClickable操作,并在调用此函数时再次调用click。

libraryUtils.waitForElements.waitForElementToBeClickable(driver, login, 20).click();

因为您已经在等待元素可点击时单击了它,所以不应该再次单击它。我希望你能找到StaleElementException的答案

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67817069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档