如何使用Javascript单击按钮:void(0)Selenium?

时间:2017-09-07 17:17:17

标签: javascript java selenium automation webdriver

我一直在努力,而且我尝试了很多事情。很抱歉,如果我的格式不正确,但无论如何,我需要点击的元素是:

<button href="javascript:void(0)" id="payNewBeneficiary" class="button-new-payee">
                                            <div class="icon">
                                                <div></div>
                                            </div>
                                            <h2>Someone new</h2>
                                            <p>Make a once-off payment or pay someone new</p>
                                        </button>

到目前为止,我已尝试通过ID,cssSelector和xpath查找元素。我也试过这个

Actions act = new Actions(driver); 
act.moveToElement(payNewBeneficiaryButton);
act.click(payNewBeneficiaryButton);
        act.build().perform();

以及

((JavascriptExecutor)driver).executeScript("document.getElementById('payNewBeneficiary').click()");

这个

JavascriptExecutor exec = (JavascriptExecutor) driver;
exec.executeScript("arguments[0].click()", payNewBeneficiaryButton);

2 个答案:

答案 0 :(得分:1)

试试这些

Rails.logger.debug(">>> @BACKUP >>>: #{@backup.inspect}")

D, [2017-09-07T20:21:24.835450 #7755] DEBUG -- : >>> @BACKUP >>>: nil
你可以试试

driver.findElement(By.css("<one of the below css>")).click()

有时,listen可能位于指定的子元素

答案 1 :(得分:1)

所以,问题是元素不可点击。我使用以下代码首先向下滚动页面,直到元素没有被阻挡。

 wait.until(ExpectedConditions.elementToBeClickable(payNewBeneficiaryButton));
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView();",payNewBeneficiaryButton);
payNewBeneficiaryButton.click();

感谢您试图帮助他们。欣赏它。