【问题标题】:Click() not working on a button but getText() works fine with same xpath in selenium webdriverClick() 在按钮上不起作用,但 getText() 在 selenium webdriver 中使用相同的 xpath 可以正常工作
【发布时间】:2014-12-02 18:18:19
【问题描述】:

我正在尝试使用 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);

我也尝试过使用隐式等待,但不是没有用。请帮助解决按钮未被点击的所有可能原因。

【问题讨论】:

    标签: java button xpath selenium-webdriver click


    【解决方案1】:

    原因可能是:

    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);

    【讨论】:

    • 我应用了 Thread.sleep() 并且它工作但它没有隐式等待。不知道这是否是正确的实施方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 2018-09-30
    相关资源
    最近更新 更多