Java 如何在selenium中实现这一点
我是硒的新手,需要你的帮助。我试着运行一个测试来创建一个新的选项卡并放置一个新的页面。我使用的是CSS选择器,但它不起作用。控制台显示:Java 如何在selenium中实现这一点,java,selenium,Java,Selenium,我是硒的新手,需要你的帮助。我试着运行一个测试来创建一个新的选项卡并放置一个新的页面。我使用的是CSS选择器,但它不起作用。控制台显示:stale元素引用:元素未附加到页面文档 下面是一段代码: @FindBy (css=".list-group > a[id=\"itemc\"]") private List<WebElement> categories; @FindBy (css="body")
stale元素引用:元素未附加到页面文档
下面是一段代码:
@FindBy (css=".list-group > a[id=\"itemc\"]")
private List<WebElement> categories;
@FindBy (css="body")
private WebElement googleBar;
public void testClick() {
contactLink.click();
}
public void moveTab(String web){
googleBar.sendKeys(Keys.CONTROL + "t");
for(WebElement category : categories) {
driver.get(web);
w.waitForElementToBeVisible(driver,contactLink, 2);
category.click();
}
}
要打开新选项卡及其上的页面,可以使用JavaScript执行器:
((JavascriptExecutor) driver).executeScript("window.open()");//open new tab
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));//switch tabs
((JavascriptExecutor)驱动程序).executeScript(“window.open()”)//打开新选项卡
ArrayList tabs=新的ArrayList(driver.getWindowHandles());
driver.switchTo().window(tabs.get(1))//切换选项卡
记住:
选项卡。get(0)
是第一个选项卡,而选项卡。get(1)
是第二个选项卡,等等。。。就像在Java数组中一样。谢谢老兄,我可以解决它,我使用了这个命令driver.switchTo().newWindow(WindowType.Tab)
((JavascriptExecutor) driver).executeScript("window.open()");//open new tab
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(tabs.get(1));//switch tabs