gpt4 book ai didi

selenium - Selenium webdriver 如何使用充满 JavaScript 的 http 响应定位元素?

转载 作者:行者123 更新时间:2023-11-28 20:04:44 25 4
gpt4 key购买 nike

我使用 selenium webdriver 来加速我的测试。在我的工作中,我们的网站将重定向到 Paypal ,供用户完成付款。但是,我无法让 selenium webdriver 找到 paypal 上的电子邮件和密码输入字段。

示例 Paypal 网址:https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-07L974777B231831F#/checkout/login

我的代码演示可能是这样的:

    WebDriver m_driver = new FirefoxDriver();
String redirected_url = "https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-0AT82163FM860854K#/checkout/login";

m_driver.get(redirected_url);
Thread.sleep(15*1000);
WebElement we = m_driver.findElement(By.xpath(".//*[@id='email']"));
we.sendKeys("login_email");
we = m_driver.findElement(By.xpath(".//*[@id='password']"));
we.sendKeys("login_password");
we = m_driver.findElement(By.xpath(".//*[@id='btnLogin']"));
we.click();

我的问题:

使用该代码和在 paypal 网站上,我总是收到“找不到此类元素”异常的错误消息。

我可以在 Firefox 中找到带有 firepath 的元素,但我无法让 selenium webdriver 工作。

我知道这个错误可能是由整个paypal登录页面的JavaScript引起的。我只是不知道如何处理这种情况。

最佳答案

您找不到这些元素的原因是 iframe。因此,在开始寻找元素之前使用 switchTo 方法和 switchTo iframe。像这样的东西:

driver.switchTo().frame("injectedUl");
WebElement we = m_driver.findElement(By.xpath(".//*[@id='email']"));
...

enter image description here

关于selenium - Selenium webdriver 如何使用充满 JavaScript 的 http 响应定位元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34011236/

25 4 0
文章推荐: javascript - 多次设置背景颜色动画。
文章推荐: javascript - 当鼠标单击第一个