【问题标题】:How can I select this button?如何选择此按钮?
【发布时间】:2018-01-01 19:22:12
【问题描述】:

我正在使用 Selenium 自动执行网站的结帐过程,但无法弄清楚如何正确选择此特定元素。到目前为止,我已经尝试了以下所有方法,但都没有成功:

//no such element
driver.findElement(By.id("Something here")).click();
//no such element
driver.findElement(By.xpath("//*[@id="add-remove-buttons"]/input")).click();
//no such element
driver.findElement(By.name("commit")).click();

似乎我得到的最接近的是:

driver.findElement(By.className("button")).click();

使用它会给我一个错误,说按钮不可见。所以看起来我正朝着正确的方向前进,但我不确定从这里去哪里。这是按钮的 HTML 源代码:

<input type="submit" name="commit" value="add to cart" class="button">

不确定这是否在其中起作用,但是当单击此按钮时,它会变成一个新按钮。相同的位置,但颜色、文本和功能不同。

如果你想亲自看看这里是网站:

http://www.supremenewyork.com/shop/accessories/yf89tm27c/e8c56njah?alt=0

我尝试点击的按钮是添加到购物车按钮。

【问题讨论】:

  • 你能知道add-remove-button在哪里吗?

标签: java html selenium


【解决方案1】:

试试下面的代码:

WebDriverWait wait = new WebDriverWait(driver, 10); 
WebElement button = wait.until(ExpectedConditions.elementToBeClickable(By.name("commit")));
button.click();

希望对你有帮助!

【讨论】:

  • 感谢您的成功!我想知道您第一次创建新的 WebElement 是否有任何特殊原因?还是这只是因为它很容易再次到达。
  • @CodeSoloDolo,我在点击操作之前添加了特殊等待。
猜你喜欢
  • 2021-11-09
  • 2015-12-09
  • 2022-08-18
  • 2021-09-01
  • 2011-04-17
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
相关资源
最近更新 更多