目前,我正在使用Node.js进行Selenium自动化测试。我发现使用Selenium无法实现的一些操作。这是详细信息。
我当前的先决条件是从某些处理电子邮件网站的Deeplink中打开新标签。单击深层链接后,“更改我的密码”将重定向到我的网站并继续更改密码过程。如何将控制权转移到其他选项卡?
//after click on deeplink, open new tab
driver.getAllWindowHandles().then(function gotWindowHandles(allhandles) {
return driver.switchTo().window(allhandles[allhandles.length - 1]);
});
let newtab = driver.findElement(By.xpath('//*[@id="new_password"]'));
await driver.wait(until.elementLocated(newtab));
await driver.wait(until.elementIsVisible(driver.findElement(newtab))).sendKeys('Tester123!!');
//enter confirm password
await driver.findElement(By.xpath('//*[@id="confirmpass"]')).sendKeys('Tester123!!');
任何帮助将不胜感激。
先感谢您。
最佳答案
糟糕,我发现了我的错误。我应该使用By.xpath而不是driver.findElement查找给我不同的结果。
//after click on deeplink, open new tab
driver.getAllWindowHandles().then(function gotWindowHandles(allhandles) {
return driver.switchTo().window(allhandles[allhandles.length - 1]);
});
//should be use by xpath :(
let newtab = By.xpath('//*[@id="new_password"]');
await driver.wait(until.elementLocated(newtab));
await driver.wait(until.elementIsVisible(driver.findElement(newtab))).sendKeys('Tester123!!');
//enter confirm password
await driver.findElement(By.xpath('//*[@id="confirmpass"]')).sendKeys('Tester123!!');
现在一切都好。编码愉快!
关于node.js - Selenium Node.js转移控制到其他标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49186117/