我有一个网页,里面有电子邮件,密码和登录按钮。
我的目标是首先等待页面加载,然后检查元素(电子邮件字段)是否可见。然后在其中插入数据并继续。
当我使用firepath
和控制台检查后,我发现网页上有iframe
,并且这些字段位于框架内。
所以我使用了以下代码:
getWrappedDriver().switchTo().frame(0);
getWrappedDriver().waitForElementClickable(String locator);
但这没有用,虽然当我运行代码时网页上出现了该元素,但我的webdriver仍无法找到该元素
有人可以帮忙吗?
答案 0 :(得分:0)
正如您在其中一条评论中提到的,在网址https://www.sandbox.paypal.com/signin
上似乎所有WebElements
即email
,password
和login_button
都在Top Window
。因此,您无需切换到任何frame
。这是工作代码块:
package demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Q46139002_login
{
public static void main(String[] args) throws Exception
{
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://www.sandbox.paypal.com/signin");
driver.findElement(By.xpath("//input[@id='email']")).sendKeys("email_id");
driver.findElement(By.xpath("//input[@id='password']")).sendKeys("password");
driver.findElement(By.xpath("//button[@id='btnLogin']")).click();
}
}