Bha*_*hah 103 firefox selenium browser-tab selenium-webdriver
如何使用Selenium WebDriver(又名Selenium 2)在现有Firefox浏览器中打开新选项卡?
Yi *_*eng 84
对于那些正在寻找Ruby/Python/C#绑定(Selenium 2.33.0)答案的人来说.
请注意,要发送的实际密钥取决于您的操作系统,例如Mac使用的COMMAND + t,而不是CONTROL + t.
红宝石
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :firefox
driver.get('http://stackoverflow.com/')
body = driver.find_element(:tag_name => 'body')
body.send_keys(:control, 't')
driver.quit
Run Code Online (Sandbox Code Playgroud)
蟒蛇
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://stackoverflow.com/")
body = driver.find_element_by_tag_name("body")
body.send_keys(Keys.CONTROL + 't')
driver.close()
Run Code Online (Sandbox Code Playgroud)
C#
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
namespace StackOverflowTests {
class OpenNewTab {
static void Main(string[] args) {
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://stackoverflow.com/");
IWebElement body = driver.FindElement(By.TagName("body"));
body.SendKeys(Keys.Control + 't');
driver.Quit();
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 48
下面的代码将打开新标签中的链接.
String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,Keys.RETURN);
driver.findElement(By.linkText("urlLink")).sendKeys(selectLinkOpeninNewTab);
Run Code Online (Sandbox Code Playgroud)
下面的代码将打开空的新Tab.
String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL,"t");
driver.findElement(By.linkText("urlLink")).sendKeys(selectLinkOpeninNewTab);
Run Code Online (Sandbox Code Playgroud)
ker*_*ode 30
为什么不这样做
driver.ExecuteScript("window.open('your url','_blank');");
Run Code Online (Sandbox Code Playgroud)
Can*_*ner 15
从 selenium >= 4.0 开始,不需要 JavaScript 或send_keys解决方法。Selenium 4 提供了一个名为 的新 API newWindow,可让您创建新窗口(或选项卡)并自动切换到它。由于新窗口或选项卡是在同一会话中创建的,因此可以避免创建新的 WebDriver 对象。
Python
打开新选项卡
from selenium.webdriver.chrome.webdriver import WebDriver
from selenium.webdriver.common.window import WindowTypes
driver.switch_to.new_window(WindowTypes.TAB)
Run Code Online (Sandbox Code Playgroud)
打开新窗口
from selenium.webdriver.chrome.webdriver import WebDriver
from selenium.webdriver.common.window import WindowTypes
driver.switch_to.new_window(WindowTypes.WINDOW)
Run Code Online (Sandbox Code Playgroud)
爪哇
打开新窗口
driver.get("https://www.google.com/");
// Opens a new window and switches to new window
driver.switchTo().newWindow(WindowType.WINDOW);
// Opens LambdaTest homepage in the newly opened window
driver.navigate().to("https://www.lambdatest.com/");
Run Code Online (Sandbox Code Playgroud)
打开新选项卡
driver.get("https://www.google.com/");
// Opens a new window and switches to new window
driver.switchTo().newWindow(WindowType.TAB);
// Opens LambdaTest homepage in the newly opened tab
driver.navigate().to("https://www.lambdatest.com/")
Run Code Online (Sandbox Code Playgroud)
在Chrome驱动程序中打开新窗口.
//The script that will will open a new blank window
//If you want to open a link new tab, replace 'about:blank' with a link
String a = "window.open('about:blank','_blank');";
((JavascriptExecutor)driver).executeScript(a);
Run Code Online (Sandbox Code Playgroud)
您可以将以下代码与Java搭配使用Selenium WebDriver:
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "t");
Run Code Online (Sandbox Code Playgroud)
通过使用JavaScript:
WebDriver driver = new FirefoxDriver();//FF or any other Driver
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.open()");
Run Code Online (Sandbox Code Playgroud)
要使用JavascriptExecutor打开新标签页,
((JavascriptExecutor) driver).executeScript("window.open()");
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));
Run Code Online (Sandbox Code Playgroud)
将根据索引控制标签:
driver.switchTo().window(tabs.get(1));
Run Code Online (Sandbox Code Playgroud)
主选项卡上的驱动程序控制:
driver.switchTo().window(tabs.get(0));
Run Code Online (Sandbox Code Playgroud)
(红宝石示例)
WebDriver 现在支持打开选项卡:
browser = Selenium::WebDriver.for :chrome
new_tab = browser.manage.new_window
Run Code Online (Sandbox Code Playgroud)
将打开一个新选项卡。打开一个窗口实际上已经成为非标准情况:
browser.manage.new_window(:window)
Run Code Online (Sandbox Code Playgroud)
选项卡或窗口不会自动获得焦点。要切换到它:
browser.switch_to.window new_tab
Run Code Online (Sandbox Code Playgroud)
小智 5
尝试使用FireFox浏览器.
/* Open new tab in browser */
public void openNewTab()
{
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs.get(0));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
223197 次 |
| 最近记录: |