【发布时间】:2015-10-16 06:03:39
【问题描述】:
我正在学习 Selenium-Webdriver,以便练习在一个场景中工作,但我被困在第 3 步。场景如下:
- 打开 google 主页并执行一些搜索,例如搜索“WebDriver”一词。
- 在同一窗口的新选项卡中打开前两个链接。
- 导航到第二个和第三个选项卡并获取它们的标题
- 关闭选项卡并切换回 google 结果选项卡。
到目前为止,我可以打开谷歌主页,搜索“WebDriver”这个词并打开前两个链接,但现在我无法切换到第二个和第三个选项卡并关闭它们。到目前为止我的代码是:
String originalHandle = driver.getWindowHandle();
System.out.println("Before switching title is:" +driver.getTitle());
String selectLinkOpeninNewTab = Keys.chord(Keys.COMMAND,Keys.ENTER);
WebElement link1 = driver.findElement(By.xpath(".//*[@id='rso']/div[2]/div[1]/div/h3/a"));
link1.sendKeys(selectLinkOpeninNewTab);
WebElement link2 = driver.findElement(By.xpath(".//*[@id='rso']/div[2]/div[2]/div/h3/a"));
link2.sendKeys(selectLinkOpeninNewTab);
Set<String> s1 = driver.getWindowHandles();
Iterator<String> i1 = s1.iterator();
int i = 0;
while(i1.hasNext())
{
i++;
String childwindow = i1.next();
if(!originalHandle.equalsIgnoreCase(childwindow))
{
driver.switchTo().window(childwindow);
Thread.sleep(10000);
System.out.println("After switching title of new Tab "+i+ " title is " +driver.getTitle());
driver.close();
}
}
driver.switchTo().window(originalHandle);
System.out.println("Original window tab title is" +driver.getTitle() );
我不确定哪里出了问题以及如何解决它。 :(
【问题讨论】:
-
能否提供网站的链接?
-
@saifur 第一个链接是谷歌搜索:google.co.in/… 从该链接,我试图打开前两个结果链接(页面上存在),如下所示:1. www.seleniumhq。 org/projects/webdriver/ 2.seleniumhq.org/docs/03_webdriver.jsp
标签: java selenium selenium-webdriver