如何使用 selenium webdriver 查找动态元素?
Posted
技术标签:
【中文标题】如何使用 selenium webdriver 查找动态元素?【英文标题】:How to find a dynamic elements using selenium webdriver? 【发布时间】:2020-05-18 11:04:19 【问题描述】:<div id="button" data-testid="widgetButton" class=" chat-closed mobile-size__large">
我的元素带有 Webdriver 无法找到的特殊字符。
我正在尝试单击一个项目,我已经尝试了所有方法。 我的最后一次尝试:
wd.get(urlSubpage);
wd.findElement(By.cssSelector("[class='widgetLabel']"));
【问题讨论】:
尝试使用 ChroPath 之类的东西进行部分调试... 您要查找哪个元素? html中没有widgetLabel
类。
@Muzzamil 我想找到
【参考方案1】:
您可以在id
的帮助下使用 webdriver 等到元素能够接收到点击。
WebDriverWait wait = new WebDriverWait(driver, 50);
wait.until(ExpectedConditions.elementToBeClickable(By.id("button-body")));
用JS点击
WebElement element = driver.findElement(By.id("button-body"));
javascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
【讨论】:
我加了但是Caused by: org.openqa.selenium.NoSuchElementException: Unable to locate element: #button\-body
@Nirwellyn 请尝试点击答案中提到的 JS。复制粘贴代码并尝试。删除点击前的等待元素以上是关于如何使用 selenium webdriver 查找动态元素?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Java 在 selenium webdriver 中打开新选项卡,或者如何使用 selenium webdriver 使用动作类在 selenium 中按 ctrl + T [重复]
如何使用selenium webdriver来判断一个网页加载完毕
Selenium & webdriver.io 如何使用 executeScript?
如何使用selenium webdriver来判断一个网页加载完毕