我正在使用Selenium和Firefox。
我在页面上有一个链接(比如linkA),它在新标签页中打开一个新页面。单击linkA时会显示新选项卡。然后我想与新页面进行互动。
这是我的硒脚本:
Selenium无法识别新标签。它报道:
[warn] Link的目标是'_blank',Selenium不支持!将目标随机化为:selenium_blank24003
有没有办法告诉Selenium与显示的标签进行互动?
答案 0 :(得分:4)
您是否尝试在selectWindow和clickB?之间添加windowFocus?
编辑: selectWindow采用Javascript windowID。您的linkA是否指定了Selenium访问的windowID?
这是完整的第一个测试页面(t1.html),在window.open中调用第二个参数是'WindowTest',这是selenium寻找的javascript windowID。
<a href="javascript:void(0);" name="t1"
onclick="window.open('t2.html', 'WindowTest', 'width=450,height=600');">
test
</a>
这是第二个测试页面(t2.html):
<a href="t1.html" name="t2">2test2</a>
运行脚本最终会在t1.html上显示弹出窗口 我的剧本
click link=test
pause 5000
selectWindow WindowTest
windowFocus
click link=2test2
答案 1 :(得分:4)
你好试试这个......
Set<String> winSet = driver.getWindowHandles();
List<String> winList = new ArrayList<String>(winSet);
String newTab = winList.get(winList.size() - 1);
System.out.println("winList: "+winList.size());
//driver.close(); // close the original tab
driver.switchTo().window(newTab);
答案 2 :(得分:2)
它对我有用。
[info] Executing: |storeEval | this.browserbot.findElement('link=Pastanet').href | Link_PastaNet |
[info] Executing: |openWindow | ${Link_PastaNet} | MyWindows |
答案 3 :(得分:0)
以下是我为Selenium IDE采取的步骤:
getEval | this.page()。findElement('link = click here')。removeAttribute('target')||
storeEval | this.page()。findElement('link = click here')。href | myUrl
getEval | this.page()。findElement('link = click here')。href =“javascript:window.open('$ {myUrl}','myWindow')”||
点击| link =点击这里||
暂停| 1000 ||
selectWindow | name = myWindow ||
答案 4 :(得分:0)
lericain59给了我正确的方向,虽然我不得不做一些改变,因为它与我的版本的selenium的IDE(我正在运行1.0.6)一起工作。此外,为了我的目的,我不需要验证它在一个单独的窗口中打开,只是打开了正确的窗口。
这是适用于我的脚本。
this.page()无效。它似乎已被this.browserbot取代。此外,我只是直接打开页面 - 它避免了手动暂停并且步骤较少。
答案 5 :(得分:0)
Iterator<String> windowIterator = driver.getWindowHandles().iterator();while (windowIterator.hasNext()) {
String windowHandle = windowIterator.next();
driverwindow = driver.switchTo().window(windowHandle);
if (_driverwindow.getTitle().equals("Title of the window to switch")) {
}
}
答案 6 :(得分:0)
只需使用此代码。
public void newtab(){
System.setProperty("webdriver.chrome.driver", "E:\\eclipse\\chromeDriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.w3schools.com/tags/att_a_target.asp");
//I have provided a sample link. Make sure that you have provided the correct link in the above line.
driver.findElement(By.className("tryitbtn")).click();
new Actions(driver).sendKeys(driver.findElement(By.tagName("html")), Keys.CONTROL).sendKeys(driver.findElement(By.tagName("html")), Keys.NUMPAD2).build().perform();
// In keyboard we will press
//ctrl+1 for 1st tab
//ctrl+2 for 2nd tab
//ctrl+3 for 3rd tab.
//Same action is written in the above code.
}