![](/img/trans.png)
[英]Selenium clicks an element 'successfully', yet, it is not actually clicked
[英]How to check if Selenium clicks on element successfully?
在我的java
和Selenium
项目中,我有以下方法来单击特定元素
public void click(String xPath) {
driver.findElement(By.xpath(xPath)).click();
}
目前,我有一个元素,它对我的点击没有反应! 所以,我需要确定,selenium 是否真的成功地点击了这个元素。
要点:运行时没有错误。 所以,我认为它可以找到元素。 但是,让我惊讶的是,没有点击效果!
更多细节:
我正在尝试自动化此页面。 您可以在这个存储库中找到完整的代码。 你需要采取一些步骤,直到你达到我真的有问题的地步。 这就是我共享存储库的原因,因为该页面不可直接访问(抱歉)。
当我在https://hello.friday.de/quote/selectFuelType 时,(请找到图片)
我无法使用以下 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
类中的i_am_asked_to_specify_the_Fuel_Type_of_the_car()
。
在网站https://hello.friday.de/quote/selectPrecondition上,默认选择第一个选项Das Auto ist schon versichert 。 所以click()
第二个选项Das Auto wird noch zugelassen oder umgemeldet你必须为element_to_be_clickable()
引入WebDriverWait ,你可以使用以下任一定位器策略:
cssSelector
:
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 选择器。
其次,如果您想检查是否发生了点击并加载了下一页,那么您可以简单地检查标题的更改,或者您可以检查是否已从下一页加载了某个元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.