selenium 无法从以下dom代码映像中找到xpath

0ejtzxu1  于 2022-12-04  发布在  其他
关注(0)|答案(2)|浏览(95)

我想执行点击添加到卡丁车按钮的操作,但这个相同的DOM代码用于30多个项目,只有产品名称不同,这是在文本中。
我想执行点击添加到卡丁车按钮的操作,但这个相同的DOM代码用于30多个项目,只有产品名称不同,这是在文本中。

yrdbyhpb

yrdbyhpb1#

基本上,如果产品名称是唯一唯一的东西,那么您需要首先找到产品,然后使用它的父元素来访问单击按钮。

product = driver.find_element(value=f"//*[contains(text(), '{product_name}')]", by=By.XPATH)
parent_element = product.find_element(value="..", by=By.XPATH)
button = parent_element.find_element(value="button", by=By.TAG_NAME)
button.click()

编辑:看起来像是我为python编写的解决方案,但你也可以用java做同样的事情。

eeq64g8w

eeq64g8w2#

正如@Saba提到的,如果DOM中唯一的东西是产品名称,那么您必须依赖它来定位。
如果您可以使用部分产品名称,则此程式码可用来建立选取器,以透过下列方式寻找并按一下元素:

String productNamePartial = "Brocolli";
String xpath = String.format("//*[contains(text(),'%s')]/../div/button", productNamePartial);

如果您需要使用确切的标题,可以这样做:

String productNameExact = "Brocolli - 1 Kg";
String xpath = String.format("//*[text() = '%s']/../div/button", productNameExact);

相关问题