无法单击Selenium中的按钮

时间:2017-08-28 07:13:05

标签: javascript java selenium webdriver

我在点击Selenium的按钮时遇到了困难。

这是DOM:http://pasteboard.co/GHIjMd6.png

我已经使用Xpath(一个根据Firepath返回一个节点的有效Xpath)以这种方式声明了按钮WebElement:

WebElement send_this_msg_btn = driver.findElement(By.xpath("//*[@class='mp-button-content'][.='Send This Message']"));

我尝试用下面提到的send_this_msg_btn Xpath单击所述按钮,但它们都不适用于我。

WebDriver的click()方法:send_this_msg_btn.click()

JavaScriptExecutor:

JavaScriptExecutor jse = (JavaScriptExecutor)driver;
jse.executeScript("arguments[0].click();", send_this_msg_btn);

动作类:

Actions actions = new Actions(driver);
actions.moveToElement(send_this_msg_btn);
actions.click();
actions.build().perform();

我还检查了按钮是否在框架/ iframe中,但情况也不是这样。

2 个答案:

答案 0 :(得分:0)

将xpath更改为.//mp-button[@class='mp-button-primary submit_button']解决了问题,但我不确定这是否应该是接受的答案,因为我不确定它是否是一个脆弱的xpath。欢迎任何建议!

答案 1 :(得分:-1)

尝试点击父按钮

xpath = "//*[@class='mp-button-content'][.='Send This Message']/.."

或它的父母

xpath = "//*[@class='mp-button-content'][.='Send This Message']/../.."

并使用显式等待直到元素可单击。

WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement elem = wait.until(ExpectedConditions.elementToBeClickable(By.xpath(xpath)));
elem.click();