【问题标题】:Can't click button with selenium无法单击带有硒的按钮
【发布时间】:2017-12-17 15:41:24
【问题描述】:

我是 javascript 和 selenium 的新手。我创建了一个简单的添加到购物车项目,但我目前正在处理的项目遇到了一些麻烦。 HTML 代码是:

<div class="buttons-set" id="shipping-method-buttons-container">
<button type="button" class="dark" onclick="shippingMethod.save()" onkeypress="shippingMethod.save()">Continue</button>
<span id="shipping-method-please-wait" class="please-wait icon icon--notch" style="display:none;">
Loading next step... </span>
</div>

我似乎不知道在哪里可以单击“继续”按钮。我尝试过诸如

之类的东西
driver.findElement(By.linkText("Continue")).click(); 
driver.findElement(By.xpath(//*[@id='shipping-method-buttons-container']/button)).click(); 

和许多其他组合,但似乎没有一个有效。

【问题讨论】:

    标签: javascript jquery html css selenium


    【解决方案1】:

    尝试通过类名获取元素:

    driver.find_element_by_class_name("dark").click(); 
    

    【讨论】:

    • 这个方法我也试过了,还是没有反应。 HTML 代码中有多个名为“dark”的类,我不确定这是否起作用。
    【解决方案2】:

    我相信你已经使用了隐式等待。如果没有,我们需要添加它。

    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    

    也可以在 xpath 下面试试这个。

    driver.findElement(By.xpath("//button[contains(text(),'Continue']")).click(); 
    

    希望这会有所帮助。谢谢。

    【讨论】:

      【解决方案3】:

      使用cssSelector 定位器试试下面的代码。

      driver.findElement(By.cssSelector("button[class='dark'][type='button']")).click();
      

      尝试使用java-script执行器点击按钮。

      WebElement continue_button = driver.findElement(By.cssSelector("button[class='dark'][type='button']"));
      ((JavascriptExecutor) driver).executeScript("arguments[0].click();", continue_button);
      

      【讨论】:

        猜你喜欢
        • 2020-12-05
        • 1970-01-01
        • 2021-01-26
        • 1970-01-01
        • 2013-11-05
        • 1970-01-01
        • 2021-12-08
        相关资源
        最近更新 更多