【发布时间】:2021-10-04 02:04:00
【问题描述】:
我有以下语句来检查是否存在 2 个条件 一个元素:
if len(driver.find_elements(By.XPATH, "//span[text()='$400.00']/../following-sibling::div/a[text()='Buy']")) > 0:
elem = driver.find_element(By.XPATH, "//span[text()='$400.00']/../following-sibling::div/a[text()='Buy']")
我尝试了一些变体,包括“preceding sibling::span[text()='x'”,但似乎无法使语法正确,或者我的方法是否正确。
HTML 如下。当前的 find_elements(By.XPATH...) 正确找到了“Total”和“Buy”类,我还想在“price”类中添加 20.00 美元作为条件。
<ul>
<li class="List">
<div class="List-Content row">
<div class="Price">"$20.00"</div>
<div class="Quantity">10</div>
<div class="Change">0%</div>
<div class="Total">
<span>$400.00</span>
</div>
<div class="Buy">
<a class="Button">Buy</a>
</div>
</div>
</li>
</ul>
【问题讨论】:
-
分享网址。如果不可能,请使用 HTML 代码更新问题。
-
需要查看 HTML 以进一步帮助您。
-
已更新 HTML。谢谢!
-
我还想在“价格”类中添加 20.00 美元作为条件。 - 你能解释一下吗?
-
一般性评论:
text()并没有做您显然认为的事情。不要使用它来按文本内容搜索元素。请改用.(例如span[. = '$400.00']、a[. = 'Buy'])或直接使用该元素(例如//*[span = '$400.00']/following-sibling::div/...)。