关于java:WebDriver Selenium:无法在PayPal的用户名框中插入用户名

WebDriver Selenium: Cannot Insert Username into PayPal's username box

我很难让WebDriver键入PayPal网站的用户名框。我试过使用xpath、id和css,但这里一定有一些东西我遗漏了,因为它应该很简单。文本框位于代码最底部,其中input="email"

有人能在PayPal网站上试用它吗?如果我只是使用Firebug/FirePath给出的xpath代码,或者如果我执行webelement username=driver.findelement(by.id("email")),则会得到找不到的元素;

代码


在插入用户名和密码之前,只需切换到iframe,并使用以下C代码就可以做到这一点:

1
2
3
4
5
driver.SwitchTo().Frame(driver.FindElement(By.TagName("iframe")));
var emailAddressLogin = driver.FindElement(By.Id("email"));
                emailAddressLogin.SendKeys("EnterEmailAddress");
                var password = driver.FindElement(By.Id("password"));
                password.SendKeys("EnterPassword");

这是使用Paypal沙箱环境。


试一试:

1
2
3
4
WebElement email = driver.findElement(By.cssSelector("#email"));
email.click();
email.clear();
email.sendKeys("[email protected]");

它在我的机器上工作正常。


遵循C代码对我来说很好。尝试同样的使用Java,应该工作。

1
2
3
4
5
6
[Test]
    public void TestMethod()
    {
        IWebElement username = driver.FindElement(By.CssSelector("form[name='login'] input#email"));
        username.SendKeys("anytext");
    }

所以我看了一点HTML,发现里面有一个表单……我能让它和这个代码一起工作:

1
2
3
4
5
String URL = ("https://www.paypal.com/signin/?country.x=US&locale.x=en_US");
    driver.get(URL);
    WebElement form = driver.findElement(By.cssSelector(".main form"));
    WebElement username = form.findElement(By.id("email"));
    username.sendKeys("test");