我是编码新手。以我的知识在已经成功登录。在主页中,当我单击指定的链接时,它会在新选项卡中打开,这是预期的行为。现在,当我尝试点击新打开的选项卡中的元素时,我没有得到这样的元素异常,因为驱动程序实例指向第一个选项卡,而不是第二个选项卡。如何获取新打开的标签页的驱动程序实例。下面是我使用的代码。
//这是基类。
public class BaseTest {
public static WebDriver driver ;
@BeforeTest
public void setUp() {
System.setProperty("webdriver.chrome.driver", "/chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("My url");
}
}
//这是登录测试。
public class LoginTest extends BaseTest {
@Test
public void login() throws InterruptedException {
LoginPage loginpage = PageFactory.initElements(driver, LoginPage.class);
loginpage.enterUser_Name(userName);
loginpage.enterPass_Word(passWord);
loginpage.clickLoginButton();
}
}
Thread.sleep(5000);
loginpage.ClickOnTab();
Thread.sleep(5000);
loginpage.clickOnLink(); //At this line, new tab is opened automatically.
Thread.sleep(5000);
}
}
//在新打开的标签中,我需要点击一些元素。这是我正在使用的代码。
public class newTab extends BaseTest {
@Test
public void createNew() {
OtherPage create = PageFactory.initElements(driver,OtherPage.class);
Thread.sleep(10000);
create.clickOnTab();// At this line I am getting no such element exception
}
}
请帮助我如何在新打开的选项卡上执行操作,并告诉我哪里出错。
试试下面的代码
public class LoginTest extends BaseTest {
@Test
public void login() throws InterruptedException {
LoginPage loginpage = PageFactory.initElements(driver, LoginPage.class);
loginpage.enterUser_Name(userName);
loginpage.enterPass_Word(passWord);
loginpage.clickLoginButton();
}
}
Thread.sleep(5000);
loginpage.ClickOnTab();
Thread.sleep(5000);
loginpage.clickOnLink(); //At this line, new tab is opened automatically.
Thread.sleep(5000);
}
public String getLocalWindowHandle (){
return driver.getWindowHandle();
}
}
public class newTab extends BaseTest {
LoginTest loginTest = new LoginTest();
@Test
public void createNew() {
OtherPage create = PageFactory.initElements(driver,OtherPage.class);
Thread.sleep(10000);
ArrayList listOfAllWindowHandles = new ArrayList(driver.getWindowHandles());
driver.switchTo().window((String) listOfAllWindowHandles.get(0));
create.clickOnTab();
driver.close();
String firstWindowHandle = loginTest.getLocalWindowHandle();
driver.switchTo().window(firstWindowHandle);
}
}
我试图编写一个函数,它将接收一个“浏览器实例”(我指的是),并打开一个带有特定URL的新选项卡。 这是函数: 返回True(如果URL有效) 如果有人能告诉我我做错了什么,我将非常感激。如果您有其他方法来完成打开新选项卡的任务,这是可以的。顺便说一下,我曾尝试使用:,但没有成功(我没有得到新的选项卡,也没有异常)
我不熟悉Ruby语言。我想使用selenium web驱动程序使用chrome浏览器。我正在尝试在chrome浏览器中打开新选项卡。但我无法得到。你能检查一下下面的代码吗。如果有什么问题,建议我 输出:chrome中的新选项卡未打开,第二个url也在已使用第一个url打开的同一页面中打开。
我喜欢什么:进入网页,点击一个链接,在一个新的标签打开。确认新选项卡的URL。 我在cucumber/selenium/java中这样做。 这是我的小cucumber 我点击链接的代码: 和代码,我已经尝试从新标签获取URL。我在这里挣扎。我所尝试的一切都会打开一个新的标签,然后屏幕变为空白并显示数据;在URL中,或者它将打开一个新的标签在一个已经这样做的顶部。我知道我不是真的在正确的轨道上。这只
我正在清理网站:http://www.delhidistrictcourts.nic.in/DLCIS-2016-2.html 此页面中有许多链接。用户将单击这些链接中的任何一个(通过SeleniumWeb驱动程序)。问题是,当用户单击这些链接时,它会在一个新选项卡中打开,因为所有链接都有一个属性(“”) 任何想法如何强制,链接打开在同一标签? 这是我写的代码
当在Selenium IE Web Driver中激发时,它将打开一个新窗口,而不是在新选项卡中打开。 通常在IE浏览器中,它会打开一个新的选项卡,但在Selenium Web Driver中不会。 需要修复。
当前代码将我带到正确的url,但最终只打印了我之前所在的url。 我希望在执行click()请求后获得新的current_url