Java 如何检查Selenium是否成功单击元素?

Java 如何检查Selenium是否成功单击元素?,java,selenium,Java,Selenium,在我的java和Selenium项目中,我有下面的方法来单击特定元素 public void click(String xPath) { driver.findElement(By.xpath(xPath)).click(); } 目前,我有一个元素,它不会对我的点击作出反应!因此,我需要确定,如果selenium真的成功点击了这个元素。 点:运行时没有错误。所以,我认为它可以找到元素。但是,对我来说,这是一个惊喜,没有点击的效果 更多详细信息: 我正在尝试自动化。你可以找到。你需

在我的
java
Selenium
项目中,我有下面的方法来单击特定元素

public void click(String xPath) {
     driver.findElement(By.xpath(xPath)).click();
}
目前,我有一个元素,它不会对我的点击作出反应!因此,我需要确定,如果selenium真的成功点击了这个元素。

点:运行时没有错误。所以,我认为它可以找到元素。但是,对我来说,这是一个惊喜,没有点击的效果


更多详细信息:

我正在尝试自动化。你可以找到。你需要采取一些措施,直到你达到我真正有问题的程度。这就是我共享存储库的原因,因为该页面无法直接访问(很抱歉)

当我在中时,(请查找图像)

我无法使用以下xpath单击项目(Benzin):

final String fuel = "//*[@id=\"root\"]/div/div[3]/div/div[2]/div/div/form/div[2]/div[2]/button[1]";
在运行期间,没有错误,因此,我希望我可以成功地单击元素,或者成功地获取当前url作为
/selectFuelType
,但它们都不起作用


有问题的方法是,
我被要求在
RegisterInsuranceSteps
类中指定车()的燃料类型

您的xpath可以更简单、更稳定。试试这个:

final String fuel =  "//button[contains(., 'Benzin')]"
查看有关
包含的
方法的更多详细信息,或查看如何对照属性或标记名进行检查


关于验证按钮是否真的被点击,我认为如果下一个测试步骤失败就足够了。在您的情况下,它将选择引擎功率。

您的xpath可以更简单、更稳定。试试这个:

final String fuel =  "//button[contains(., 'Benzin')]"
查看有关
包含的
方法的更多详细信息,或查看如何对照属性或标记名进行检查

关于验证按钮是否真的被点击,我认为如果下一个测试步骤失败就足够了。在您的情况下,将选择发动机功率。

在网站上,默认情况下会选择第一个选项Das Auto ist schon versichert。因此,
click()

  • css选择器

    WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div[class^='RadioButtonListField__container--'] button:nth-child(2)"))).click()
    
  • XPATH

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[starts-with(@class, 'RadioButtonListField__container--')]//following-sibling::button[1]"))).click();
    
注意:这些是根据相关HTML的相对定位符,不是硬编码到选项的精确文本

在网站上,默认情况下选择第一个选项Das Auto ist schon versichert。因此,
click()

  • css选择器

    WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"div[class^='RadioButtonListField__container--'] button:nth-child(2)"))).click()
    
  • XPATH

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[starts-with(@class, 'RadioButtonListField__container--')]//following-sibling::button[1]"))).click();
    
注意:这些是根据相关HTML的相对定位符,不是硬编码到选项的精确文本


首先,如果selenium没有单击,则尝试使用备用xpath。您还可以使用css选择器


其次,如果您想检查单击是否已发生,下一页是否已加载,那么您只需检查标题的更改,或者您可以检查是否已从下一页加载了某些元素。

首先,如果selenium未单击,则尝试使用备用xpath。您还可以使用css选择器

其次,如果您想检查单击是否发生并且下一页是否已加载,那么您可以简单地检查标题的更改,或者您可以检查某个元素是否已从下一页加载。

如果
。单击()
不起作用,请尝试
。发送键(key.ENTER)
。注意:必须导入密钥。如果
.click()
不起作用,请尝试
.sendKeys(Keys.ENTER)
。注意:必须导入密钥。