我正在处理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