无法单击单选按钮

问题描述

请,我不知道为什么,但是我无法单击此单选按钮。

我正在尝试通过xpath,css,id ...,但是一切正常。

总是出现错误没有这样的元素:无法找到元素

添加一个明确的等待,但仍然无法正常工作。

现在,我正在尝试,但效果不佳:

WebElement radio = driver.findElement(By.xpath(“ // div [@ class ='form-inputs-container'] / ul / li [3] / label”));

radio.click();

我需要点击此网站上的多个目标电台:

https://www.turismocity.com.br/

能帮我吗?

RadioButton

解决方法

您的xpath似乎不正确,请尝试在xpath下使用

//form[@class="tc-form-full-flight"]//label[@for="tt1"]/following-sibling::div

enter image description here

对于第一个单选按钮://form[@class="tc-form-full-flight"]//label[@for="tt1"]/following-sibling::div

对于第二个单选按钮://form[@class="tc-form-full-flight"]//label[@for="tt2"]/following-sibling::div

对于第三个单选按钮://form[@class="tc-form-full-flight"]//label[@for="tt3"]/following-sibling::div

希望这会有所帮助!

,

这应该在//input[@id='tt3']//input[@value='MultiDestino']上起作用

您可以像这样$x("//input[@value='MultiDestino']")

在chrome控制台中评估xpath

您返回的空xpath []

,

定位器不正确。不仅如此-即使有效,这种查找元素的方法也不可靠(您使用了元素位置-[3]以更改顺序,定位器将制动)。我建议使用CSS选择器:

input[value='MultiDestino']
,

对于定位器,您应该始终从极不可能更改的内容开始。通常,这是ID,名称和各种其他自定义属性,具体取决于站点。在此站点的情况下,您正在查看的三个单选按钮都有一个ID。

旁注...有时网站/页面不遵守要求ID在页面上唯一的HTML标准,因此即使您所需的元素具有ID,也请始终检查以确保其在页面上唯一。在这种情况下,这些ID是唯一的。

要单击“多个目标”单选按钮,可以使用下面的代码。

driver.findElement(By.id("tt3")).click();

在您的一些评论中,Selenium似乎很难单击INPUT本身,并且LABEL正常工作。如果是这种情况,那么您可以稍微更改定位器并使用下面的代码

driver.findElement(By.cssSelector("#tt3 + label")).click();

在上面的CSS选择器中,#表示ID,+表示下一个同级。有关更多信息,请参见the W3C docs