单击()不在按钮上工作,但getText()在selenium webdriver中使用相同的xpath工作正常

时间:2014-10-08 07:03:52

标签: java button xpath selenium-webdriver click

我正在尝试使用xpath单击弹出窗口上的按钮,我尝试了以下代码:

MySuite.driver.findElement(By.xpath("html/body/div[9]/div[3]/div/button[4]")).click();

它没有点击预期的按钮,但当我使用相同的xpath并使用getText()方法时,它返回正确的值:

String test=MySuite.driver.findElement(By.xpath("html/body/div[9]/div[3]/div/button[4]")).getText();
System.out.println(test);

我也试过使用Implicit wait但是没有用。请帮助按钮不被点击的所有原因。

1 个答案:

答案 0 :(得分:0)

原因可能是:

  1. 在您尝试点击按钮时,按钮无法点击。因此,请使用明确的预期条件,以确保按钮可单击。

    WebDriverWait wait = new WebDriverWait(driver, 10);wait.until(ExpectedConditions.elementToBeClickable(By.xpath("xpath")));

  2. 或者,尝试点击按钮元素的父元素。如果可以的话。

  3. 或者,显式注入java脚本以单击所需按钮。

    WebElement element = driver.findElement(By.id("gbqfd")); JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].click();", element);