Selenium:如何使用Javascript

时间:2017-12-17 22:32:26

标签: javascript selenium automated-tests

我没有成功将密钥发送到JQuery输入。我试图在这个网站上自动登录,他们的登录是一个Prettyphoto JQuery灯箱弹出窗口。我没有尝试过任何作品。

这是我的代码:

driver.findElement(By.xpath("//*[@id=\"pp_full_res\"]/div/form/p[1]/input")).sendKeys("username");
driver.findElement(By.xpath("//*[@id=\"pp_full_res\"]/div/form/p[2]/input")).sendKeys("password");
driver.findElement(By.xpath("//*[@id=\"prettyPhotoLogin\"]")).click();

我试过的其他东西但仍然无效:

JavascriptExecutor executor = ((JavascriptExecutor) driver);
executor.executeScript("document.getElementsByName('username').value='username'");

页面为http://www.besthorrormovielist.com/,登录链接位于页脚。

编辑: 我可以单击页脚上的登录链接并打开登录JQuery弹出窗口,但Selenium在JQuery弹出窗口中没有看到用户名和密码输入字段。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

The Login link is located on the footer which is not within the Viewport when Selenium opens the page. We need to bring the intended WebElement within the Viewport to interact with it, click the element to open the Login form and then try to invoke sendKeys("username") method as follows:

WebElement myelement = driver.findElement(By.xpath("//div[@id='footerbottom']//a[@href='#loginform']"));
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView()", myelement); 
myelement.click();