使用SeleniumWeb驱动程序

时间:2018-05-15 14:30:33

标签: java selenium login

因此,我尝试登录到首次通过弹出窗口登录的网站,一旦访问它,就会弹出一个需要用户名和密码的弹出窗口。现在我有一个非常粗略的想法,如果它不是弹出窗口我将如何做到这一点,但因为我不知道如何看到窗口的HTML代码,我不知道什么放入driver.findElement(By.id(""))。

如果这太模糊,请提前抱歉。

2 个答案:

答案 0 :(得分:0)

您可以遍历打开的窗口(包括弹出窗口)并切换到所需的窗口(在您的情况下为弹出窗口)。之后,您可以使用选择器查找所需的元素并输入登录凭据。

示例:

WebDriver driver = ...    

String parentWindowHandle = driver.getWindowHandle();

String popupWindowHandle = null;
Iterator<String> iterator = driver.getWindowHandles().iterator();
while (iterator.hasNext()) {
    popupWindowHandle = iterator.next();
}

driver.switchTo().window(popupWindowHandle);

答案 1 :(得分:0)

所以它不是弹出窗口,它的基本身份验证。

目前,selenium不支持基本的HTTP身份验证(link to issue),但有一些解决方法。

在Chrome驱动程序和Firefox驱动程序中,您可以在网址中插入用户名和密码。

实施例: 如果你有这样的网址:http://the-internet.herokuapp.com/basic_auth

用户名和密码均为&#39; admin&#39;

只需将您的网址更改为:

即可

http://admin:admin@the-internet.herokuapp.com/basic_auth

Java代码示例:

String username = "admin";
String password = "admin";
String url= "http://" + username + ":" + password + "@the-internet.herokuapp.com/basic_auth";
driver.get(url);

这将自动处理chrome和firefox驱动程序中的基本身份验证。

更多信息:Selenium - Basic Authentication via url