我正在處理2個URL。我需要打開第一個網址,執行一些操作並打開第二個網址。如何在Selenium中打開新選項卡並且不關閉舊選項卡,保留上一個窗口
openURL1() { 執行操作 }
openURL2() { 執行操作 } 切換回URL1
當我使用driver.get或driver.navigate,URL1得到關閉。無論如何,在打開URL2時保留帶有URL1的窗口? 我與硒和JAVA
我正在處理2個URL。我需要打開第一個網址,執行一些操作並打開第二個網址。如何在Selenium中打開新選項卡並且不關閉舊選項卡,保留上一個窗口
openURL1() { 執行操作 }
openURL2() { 執行操作 } 切換回URL1
當我使用driver.get或driver.navigate,URL1得到關閉。無論如何,在打開URL2時保留帶有URL1的窗口? 我與硒和JAVA
這裏是回答你的問題:
這裏是打開的URL http://www.google.com
,版畫Working on Google
在控制檯上運行的代碼塊,打開http://facebook.com/
在新選項卡中,在控制檯中打印Working on Facebook
,關閉打開URL http://facebook.com/
的選項卡,讓您回到打開URL http://www.google.com
的選項卡並最終關閉它。
System.setProperty("webdriver.gecko.driver", "C:\\your_directory\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
String first_tab = driver.getWindowHandle();
System.out.println("Working on Google");
((JavascriptExecutor) driver).executeScript("window.open('http://facebook.com/');");
Set<String> s1 = driver.getWindowHandles();
Iterator<String> i1 = s1.iterator();
while(i1.hasNext())
{
String next_tab = i1.next();
if (!first_tab.equalsIgnoreCase(next_tab))
{
driver.switchTo().window(next_tab);
System.out.println("Working on Facebook");
driver.close();
}
}
driver.switchTo().window(first_tab);
driver.close();
讓我知道如果這個回答你的問題。
是的,這個工程正好。謝謝 – user1851202
@ user1851202好消息!您可以通過點擊答案旁邊的勾號來接受答案,就在投票上/下箭頭下面,所以刻度標記變爲綠色?謝謝 – DebanjanB
工作如果第二個選項卡不會通過已在第一個選項卡執行的操作打開,那麼你可以使用兩個驅動程序對象,這樣你將有兩個不同的瀏覽器控制駕駛員對象。
WebDriver driver = new ChromeDriver();
driver.get("https://news.ycombinator.com");
WebDriver driver1 = new ChromeDriver();
driver1.get("https://www.google.com");
通過這種方法,您可以使用驅動程序來控制URL1和driver1來控制URL2。
我試過了,但它仍然關閉之前的窗口 – user1851202
它對我來說工作正常。在上一個窗口關閉瀏覽器時是否有任何操作?否則,除非你給driver.close瀏覽器將不會關閉。 –
您可以使用JavaScript打開新的標籤頁
(JavascriptExecutor(driver)).executeScript("window.open();");
是的,這爲我工作。謝謝。你能告訴我添加URL到窗口的語法 – user1851202
'(JavascriptExecutor(driver))。executeScript(「window.open(your_url_here);」);'另外,如果這個工作,請接受答案 –
的可能的複製[如何打開使用硒的webdriver與Java的新選項卡?](https://stackoverflow.com/questions/17547473/how-to-open-a-new-tab-using-selenium-webdriver -with-java) –
我在問我如何保留舊窗口,並仍然設法打開一個新選項卡。在我的情況下,當我打開一個新窗口(選項卡或窗口)時,前一個窗口會關閉。 – user1851202