我正在使用 selenium 使軟體自動化,並且有一個位於框架內部的 Web 元素,需要點擊。
我嘗試了以下幾種方法。透過使用預期條件類。透過使用 thread.sleep() 透過使用 selenium 的簡單 click() 方法。透過使用 javascriptExecutor。
但它不起作用。
有其他方法可以解決嗎?
答案1
首先你需要轉變到內嵌框架元素所在的位置,如果你不這樣做 - Selenium 將無法找到該元素,例如
driver.switchTo().frame("your frame name or ID");
其次,你需要確保你使用的是正確的區位策略並確保定位器正確。注意錯誤訊息/日誌,因為點擊可能會被其他元素(父元素、cookie 彈出視窗或其他元素)攔截
三、考慮使用WebDriver等待類別以實現顯式等待因為可能會出現元素正在載入的情況非同步地且不能立即可用
WebDriverWait wait = new WebDriverWait(driver,10); wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//your/element/xpath/query"))).click();
參考: