无法使用Selenium webdriver

时间:2016-08-23 07:43:53

标签: java selenium selenium-webdriver selenium-chromedriver

我正在尝试切换标签并通过导航到网址“http://toolsqa.com/”,然后导航到演示网站 - >进行操作。电子商务演示网站。点击此链接后,将打开同一浏览器中包含网址“http://store.demoqa.com/”的新标签页。在这里,我尝试了很多方法将焦点切换到新打开的选项卡。但是无法做到这一点,在尝试在新选项卡中执行任何操作时无法识别元素错误。

使用了不同的代码:

code1:

	public void switchWindow(String originalWindowKey){
		
		System.out.println("Ori"+originalWindowKey);
		Set<String> multipleWindowHandles = driver.getWindowHandles();
		System.out.println(multipleWindowHandles);
		System.out.println("Entry1");
		String newWindowKey = "";
		System.out.println("Entry2");
		for (String windowKeys : multipleWindowHandles) {
				System.out.println("1"+windowKeys);
				if(windowKeys.equals(originalWindowKey) == false){
					System.out.println("Success");
					newWindowKey = windowKeys;	
				}		
		}
		
		driver.switchTo().window(newWindowKey);	
	}

码2:

	public void sampleSwitch(){
		
		driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"\t");
		driver.switchTo().defaultContent();
		
	}

CODE3:

	public void oneSwitch(){
		driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL, Keys.PAGE_DOWN);
	}

以上我用来切换标签的方法,但还没有运气。请帮助我。

2 个答案:

答案 0 :(得分:0)

您可以通过target更改JavaScript属性来避免此问题:

import org.openqa.selenium.JavascriptExecutor;

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.querySelector('a[href="http://store.demoqa.com"]').target='_self';");

这会强制webdriver在同一个标​​签

中打开新的URL

答案 1 :(得分:0)

Set<String> handles = driver.getWindowHandles();
driver.switchTo().window(handles.toArray(new String[1])[1]);

System.out.println("Handles - " + handles.size());
System.out.println("Title - " + driver.getTitle());     
System.out.println("Menu text - " + driver.findElement(By.id("menu-main-menu")).getText());



RESULT -- 
Handles - 2
Title - ONLINE STORE | Toolsqa Dummy Test site
Menu text - Home
Product Category
All Product