簡體   English   中英

使用帶有 Java 的 Selenium WebDriver 在新頁面上查找 WebElement

[英]Find a WebElement on the new page using Selenium WebDriver with Java

我正在嘗試自動化一個功能,我必須打開一個新選項卡並開始在此頁面上工作,但我的代碼仍在最后一個選項卡上查看 WebElements。 我嘗試使用以下代碼切換選項卡,但它不起作用。

public void DataManager() throws InterruptedException {
    ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles());
    driver.switchTo().window(tabs2.get(0));
    driver.close();
    driver.switchTo().window(tabs2.get(1));
    WebElement tes = driver.findElement(By.xpath("//*[@id=\"lui-popover-3\"]/div/ng-transclude/ul/li[2]/button[1]/span[2]"));
    tes.click();                                
}   

這是怎么回事,我該如何解決?

第一次,您在 0 索引的第一個選項卡上有焦點驅動程序,並且您已關閉它。 關閉它后,您的 1 索引變為 0 索引,但您已在 1 索引上調用它。

您可以參考示例:

ArrayList<String> tabs= new ArrayList<String>(driver.getWindowHandles());
js.executeScript("window.open()");      
driver.switchTo().window(tabs.get(1));

在這里,通過此行,將通過保留當前選項卡來打開新選項卡。 驅動程序將調用 Tab-1。

找到了解決辦法,在我的頁面中查找Web Elements時遇到了問題,所以當我使用以下代碼更改selenium焦點時:

ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs2.get(1));

我使用按 Tab 鍵搜索了 Web 元素,我找到了它。

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM