Javascript 如何打开相邻选项卡中的第二个链接?
我一直在尝试许多功能来打开我最近打开的选项卡中的链接,但它不起作用 最少可重复的示例,注释说明每行之后会发生什么(使用Selenium webdriver,Java):Javascript 如何打开相邻选项卡中的第二个链接?,javascript,selenium,selenium-webdriver,webdriverwait,window-handles,Javascript,Selenium,Selenium Webdriver,Webdriverwait,Window Handles,我一直在尝试许多功能来打开我最近打开的选项卡中的链接,但它不起作用 最少可重复的示例,注释说明每行之后会发生什么(使用Selenium webdriver,Java): 我希望Facebook改为在选项卡2中打开。一旦打开https://twitter.com作为基本url,然后打开https://google.com在相邻的上升中。接下来打开urlhttps://facebook.com在同一个相邻位置,您必须诱导WebDriverWait,并且可以使用以下解决方案: 代码块: public
我希望Facebook改为在选项卡2中打开。一旦打开
https://twitter.com
作为基本url,然后打开https://google.com
在相邻的上升中。接下来打开urlhttps://facebook.com
在同一个相邻位置,您必须诱导WebDriverWait,并且可以使用以下解决方案:
- 代码块:
public class A_demo { public static void main(String[] args) throws Exception { System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("start-maximized"); options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation")); options.setExperimentalOption("useAutomationExtension", false); WebDriver driver = new ChromeDriver(options); driver.get("https://twitter.com"); String parent_window = driver.getWindowHandle(); ((JavascriptExecutor) driver).executeScript("window.open('https://google.com');"); new WebDriverWait(driver,5).until(ExpectedConditions.numberOfWindowsToBe(2)); Set<String> allWindows = driver.getWindowHandles(); for(String child_window:allWindows) if(!parent_window.equalsIgnoreCase(child_window)) driver.switchTo().window(child_window); driver.get("https://facebook.com"); driver.quit(); } }
public class A\u演示 { 公共静态void main(字符串[]args)引发异常 { System.setProperty(“webdriver.chrome.driver”,“C:\\Utility\\BrowserDrivers\\chromedriver.exe”); ChromeOptions选项=新的ChromeOptions(); 选项。添加参数(“开始最大化”); options.setExperimentalOption(“ExcludeSwitchs”、Collections.singletonList(“启用自动化”); options.setExperimentalOption(“useAutomationExtension”,false); WebDriver=新的ChromeDriver(选项); 驱动程序。获取(“https://twitter.com"); 字符串parent_window=driver.getWindowHandle(); ((JavascriptExecutor)驱动程序).executeScript(“window.open('https://google.com');"); 新的WebDriverWait(驱动程序,5)。直到(预期条件。窗口数为(2)); 设置allWindows=driver.getWindowHandles(); 用于(字符串子窗口:所有窗口) if(!父窗口.equalsIgnoreCase(子窗口)) driver.switchTo()窗口(子窗口); 驱动程序。获取(“https://facebook.com"); driver.quit(); } }
window.location.replace
替换当前选项卡中的位置相同的结果,请尝试。
public class A_demo
{
public static void main(String[] args) throws Exception
{
System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
options.setExperimentalOption("useAutomationExtension", false);
WebDriver driver = new ChromeDriver(options);
driver.get("https://twitter.com");
String parent_window = driver.getWindowHandle();
((JavascriptExecutor) driver).executeScript("window.open('https://google.com');");
new WebDriverWait(driver,5).until(ExpectedConditions.numberOfWindowsToBe(2));
Set<String> allWindows = driver.getWindowHandles();
for(String child_window:allWindows)
if(!parent_window.equalsIgnoreCase(child_window))
driver.switchTo().window(child_window);
driver.get("https://facebook.com");
driver.quit();
}
}