首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Selenium WebDriver和Java在新页面上查找WebElement

使用Selenium WebDriver和Java在新页面上查找WebElement
EN

Stack Overflow用户
提问于 2018-08-23 21:29:29
回答 2查看 853关注 0票数 2

我正在尝试自动化一个功能,我必须打开一个新的选项卡并开始在这个页面上工作,但我的代码仍然在最后一个选项卡上查找WebElements。我尝试用下面的代码切换选项卡,但它不起作用。

代码语言:javascript
复制
public void DataManager() throws InterruptedException {
    ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles());
    driver.switchTo().window(tabs2.get(0));
    driver.close();
    driver.switchTo().window(tabs2.get(1));
    WebElement tes = driver.findElement(By.xpath("//*[@id=\"lui-popover-3\"]/div/ng-transclude/ul/li[2]/button[1]/span[2]"));
    tes.click();                                
}   

这是怎么回事,我该怎么解决这个问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-28 03:42:07

我找到了解决方案,在我的页面中查找Web元素时遇到了问题,所以当我使用以下代码更改selenium焦点时:

代码语言:javascript
复制
ArrayList<String> tabs2 = new ArrayList<String> (driver.getWindowHandles());
driver.switchTo().window(tabs2.get(1));

我使用Tab键搜索Web元素,我找到了它。

谢谢!

票数 0
EN

Stack Overflow用户

发布于 2018-08-24 12:36:01

第一次,你在第一个选项卡上有焦点驱动程序,它在0索引上,你已经关闭了它。关闭它后,1索引变为0索引,但您在1索引上调用了它。

您可以参考示例:

代码语言:javascript
复制
ArrayList<String> tabs= new ArrayList<String>(driver.getWindowHandles());
js.executeScript("window.open()");      
driver.switchTo().window(tabs.get(1));

在这里,按此行,将通过保留当前选项卡打开新建选项卡。驱动程序将为Tab-1调用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51986962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档