我正在使用 selenium 来自动化软件,并且有一个位于框架内需要点击的 Web 元素。
我尝试了以下方法。通过使用 expectedCondtion 类。通过使用 thread.sleep(),通过使用 selenium 的简单 click() 方法。通过使用 javascriptExecutor。
但它不起作用。
还有其他方法可以解决吗?
答案1
首先你需要转变到内嵌框架元素所在的位置,如果你不这样做 - Selenium 将无法找到元素
driver.switchTo().frame("your frame name or ID");
其次,你需要确保使用正确的定位策略并确保定位器正确。注意错误消息/日志,因为点击可能会被其他元素(父元素、cookie 弹出窗口或其他元素)拦截
第三,考虑使用WebDriverWait类来实现显式等待因为元素可能正在被加载异步地并且无法立即使用
WebDriverWait wait = new WebDriverWait(driver,10); wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//your/element/xpath/query"))).click();
参考: