java - 无法使用 Selenium Java 自动注销 Amazon.com
问题描述
我正在尝试做一个简单的 selenium java 自动化来自动化“登录和退出 amazon.com 站点”。我可以使用元素定位器技术登录,例如 XPath 和 CSS 选择器。但是对于注销,我抛出了 ElementNotInteractable 异常。
下面是我尝试过的代码(单独发布注销的代码段)。
WebElement element1 = driver.findElement(By.xpath("//header/div[@id='navbar']/div[@id='nav-belt']/div[3]/div[1]/a[1]/span[1]"));
element1.click();
driver.findElement(By.xpath("//a[@id='nav-item-signout']")).click();
我已经用 CSS 选择器等不同的元素定位器技术尝试了上面的代码段,但没有运气。请建议我是否可以通过任何其他方法在弹出菜单中找到并单击退出链接。谢谢。
解决方案
您可以尝试下面的代码,其中实现了显式等待,因此它将等待元素单击
WebDriverWait wait = new WebDriverWait(driver, 20);
WebElement element1 =driver.findElement(By.xpath("//header/div[@id='navbar']/div[@id='nav-
belt']/div[3]/div[1]/a[1]/span[1]"));
element1.click();
ele2=driver.findElement(By.xpath("//a[@id='nav-item-signout']"))
wait.until(ExpectedConditions.elementToBeClickable(ele2));
ele2.click();
推荐阅读
- c# - 编组 unique_ptr
- c# - 在 DataGridView 中显示为复选框的布尔属性
- javascript - window.getSelection().baseOffset 错误
- java - 简单命令行程序中的奇怪行为
- c++ - 使用引用来初始化类成员
- android - CameraX 在 1080p 上限制图像分析的解决方法?
- html - GPIO 输出反相
- selenium - 如果我在 Linux slave 中通过 Jenkins 执行,则不会为使用机器人框架的故障案例生成屏幕截图
- python - 在 google colab 中永久保存火车数据
- react-native - sqlite3 没有第二次打开预填充的数据库