打开后如何使用 Selenium WebDriver 控制新选项卡?
How do I control new tabs with Selenium WebDriver after they are opened?
我需要 运行 在多个 Firefox 选项卡上执行不同的任务。每个选项卡将在应用程序启动时加载不同的 url。一个过程将 运行 在一个选项卡上,转到下一个,运行 下一个选项卡,转到下一个选项卡等。我的问题是当我 return 到在应用程序启动时打开的选项卡向上,我必须再次 运行 driver.get(url) 才能再次控制该选项卡。有没有一种方法可以控制选项卡,而不必重新 运行 driver.get(url) 来控制页面?
我的代码示例:
main(){
int ix = 1;
while(ix <= numberOfTabstoRun){
driver.get(url[ix]);
if(ix != numberOfTabstoRun){
openNewTab(driver);
}
ix++;
}
/**THIS WONT WORK - can't control next tab**/
while(true){
//run process on open tab
nextTab(driver);
}
/**I am forced to do this**/
int x = 1;
while(true){
driver.get(url[x]);
//run process on open tab
nextTab(driver);
x++;
}
}
private void openNewTab(WebDriver driver){
new Actions(driver).sendKeys(Keys.chord(Keys.CONTROL, "t")).perform();
}
private void nextTab(WebDriver driver){
new Actions(driver).sendKeys(Keys.chord(Keys.CONTROL, Keys.TAB)).perform();
}
发送 ctrl+tab
后,您需要将驱动程序切换到新目标。
private void nextTab(WebDriver driver){
new Actions(driver).sendKeys(Keys.chord(Keys.CONTROL, Keys.TAB)).perform();
driver.switchTo().defaultContent();
}
更多详情请见 http://design-interviews.blogspot.com/2014/11/switching-between-tabs-in-same-browser-window.html
我需要 运行 在多个 Firefox 选项卡上执行不同的任务。每个选项卡将在应用程序启动时加载不同的 url。一个过程将 运行 在一个选项卡上,转到下一个,运行 下一个选项卡,转到下一个选项卡等。我的问题是当我 return 到在应用程序启动时打开的选项卡向上,我必须再次 运行 driver.get(url) 才能再次控制该选项卡。有没有一种方法可以控制选项卡,而不必重新 运行 driver.get(url) 来控制页面?
我的代码示例:
main(){
int ix = 1;
while(ix <= numberOfTabstoRun){
driver.get(url[ix]);
if(ix != numberOfTabstoRun){
openNewTab(driver);
}
ix++;
}
/**THIS WONT WORK - can't control next tab**/
while(true){
//run process on open tab
nextTab(driver);
}
/**I am forced to do this**/
int x = 1;
while(true){
driver.get(url[x]);
//run process on open tab
nextTab(driver);
x++;
}
}
private void openNewTab(WebDriver driver){
new Actions(driver).sendKeys(Keys.chord(Keys.CONTROL, "t")).perform();
}
private void nextTab(WebDriver driver){
new Actions(driver).sendKeys(Keys.chord(Keys.CONTROL, Keys.TAB)).perform();
}
发送 ctrl+tab
后,您需要将驱动程序切换到新目标。
private void nextTab(WebDriver driver){
new Actions(driver).sendKeys(Keys.chord(Keys.CONTROL, Keys.TAB)).perform();
driver.switchTo().defaultContent();
}
更多详情请见 http://design-interviews.blogspot.com/2014/11/switching-between-tabs-in-same-browser-window.html