通过 Selenium WebDriver 在浏览器的同一个 window 会话中打开一个新选项卡?
Opening a new tab in the same window session of the browser through Selenium WebDriver?
如何通过 Selenium WebDriver 命令在浏览器的同一个 window 会话中打开一个新选项卡?
可以在同一浏览器中打开新标签页 window,请参阅 Firefox 的解决方案:
- How to open a new tab using Selenium WebDriver with Java?
问题是 - 打开一个选项卡后,没有内置的简单方法可以在选项卡之间切换。硒只是 doesn't provide an API for that.
打开新浏览器而不是标签页 window。
是的,您可以这样做,请参阅下面我的示例代码:
//OPEN SPECIFIC URL IN BROWSER
driver.get("http://www.toolsqa.com/automation-practice-form/");
//MAXIMIZE BROWSER WINDWO
driver.manage().window().maximize();
//OPEN LINKED URL IN NEW TAB IN SAME BROWSER
String link1 = Keys.chord(Keys.CONTROL,Keys.ENTER);
driver.findElement(By.linkText("Partial Link Test")).sendKeys(link1);
以上代码将在新标签页中打开 link1。你可以运行上面的代码看看效果。以上是public link 包括测试表格。
但正如 @alecxe 所说,无法在选项卡之间切换。所以你最好打开新的浏览器 window.
恐怕,但有一种方法可以在选项卡的 .
我们已经成功解决了这个问题。
请在下面找到link。
switch tabs using Selenium WebDriver with Java
Selenium 可以 在选项卡之间切换。
Python:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
element = driver.find_element_by_css_selector("html") # Gets the full page element, any element works for this
key_code = Keys.CONTROL # Use Keys.COMMAND for Mac
driver.execute_script("window.open();") # Executes Javascript to open a new tab
driver.switch_to.window(1) # Switches to the new tab (at index 1, first tab is index 0)
driver.switch_to.window(0) # Switches to the first tab
使用 java 脚本,我们可以轻松地在同一个 window 中打开新选项卡。
public String openNewTab(){
String parentHandle = driverObj.getWindowHandle();
((JavascriptExecutor)driverObj).executeScript("window.open()");
String currentHandle ="";
// below driver is your webdriver object
Set<String> win = driver.getWindowHandles();
Iterator<String> it = win.iterator();
if(win.size() > 1){
while(it.hasNext()){
String handle = it.next();
if (!handle.equalsIgnoreCase(parentHandle)){
driver.switchTo().window(handle);
currentHandle = handle;
}
}
}
else{
System.out.println("Unable to switch");
}
return currentHandle;
}
如何通过 Selenium WebDriver 命令在浏览器的同一个 window 会话中打开一个新选项卡?
可以在同一浏览器中打开新标签页 window,请参阅 Firefox 的解决方案:
- How to open a new tab using Selenium WebDriver with Java?
问题是 - 打开一个选项卡后,没有内置的简单方法可以在选项卡之间切换。硒只是 doesn't provide an API for that.
打开新浏览器而不是标签页 window。
是的,您可以这样做,请参阅下面我的示例代码:
//OPEN SPECIFIC URL IN BROWSER
driver.get("http://www.toolsqa.com/automation-practice-form/");
//MAXIMIZE BROWSER WINDWO
driver.manage().window().maximize();
//OPEN LINKED URL IN NEW TAB IN SAME BROWSER
String link1 = Keys.chord(Keys.CONTROL,Keys.ENTER);
driver.findElement(By.linkText("Partial Link Test")).sendKeys(link1);
以上代码将在新标签页中打开 link1。你可以运行上面的代码看看效果。以上是public link 包括测试表格。
但正如 @alecxe 所说,无法在选项卡之间切换。所以你最好打开新的浏览器 window.
恐怕,但有一种方法可以在选项卡的 . 我们已经成功解决了这个问题。
请在下面找到link。
switch tabs using Selenium WebDriver with Java
Selenium 可以 在选项卡之间切换。
Python:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
element = driver.find_element_by_css_selector("html") # Gets the full page element, any element works for this
key_code = Keys.CONTROL # Use Keys.COMMAND for Mac
driver.execute_script("window.open();") # Executes Javascript to open a new tab
driver.switch_to.window(1) # Switches to the new tab (at index 1, first tab is index 0)
driver.switch_to.window(0) # Switches to the first tab
使用 java 脚本,我们可以轻松地在同一个 window 中打开新选项卡。
public String openNewTab(){
String parentHandle = driverObj.getWindowHandle();
((JavascriptExecutor)driverObj).executeScript("window.open()");
String currentHandle ="";
// below driver is your webdriver object
Set<String> win = driver.getWindowHandles();
Iterator<String> it = win.iterator();
if(win.size() > 1){
while(it.hasNext()){
String handle = it.next();
if (!handle.equalsIgnoreCase(parentHandle)){
driver.switchTo().window(handle);
currentHandle = handle;
}
}
}
else{
System.out.println("Unable to switch");
}
return currentHandle;
}