【问题标题】:parse error while trying to fetch web elements尝试获取 Web 元素时解析错误
【发布时间】:2022-12-08 03:07:21
【问题描述】:

错误信息

该字符串不是有效的 xpath 表达式

HTML

<div class="w-100 di-m flex-auto">
    <div class="ma3 ma4-m mt1-m">
        <section>
            <div class="mv4">
                <div class="w_0Uhy w_tfcE">
                </div>
            </div>
            <div class="mv4">
                <div class="w_0Uhy w_tfcE">
                </div>
            </div>
            <div class="mv4">
                <div class="w_0Uhy w_tfcE">
                </div>
            </div>
            <div class="mv4">
                <div class="w_0Uhy w_tfcE">
                </div>
            </div>
        </section>
    </div>
</div>

硒 Python 代码

webd = webdriver.Chrome(service=s, options=options)
webd.get("url")
webd.find_element(By.XPATH, "//div[@class='w-100']//div[@class='ma3']//section//div[@class='mv4']")

这是正确的获取方式吗

【问题讨论】:

  • 也许尝试每个元素的整个类名,比如 ma3 ma4-m mt1-m

标签: python selenium selenium-webdriver xpath


【解决方案1】:

您可以尝试类似contains() 的方法:

webd.find_element(By.XPATH, "//*[contains(@class,'w-100')]/div/section/div[@class='mv4']")

【讨论】:

  • 这会返回所有带有 mv4 类的 div 还是只返回第一个?
  • 删除从 //div[@class='mv4' 到 /div[@class='mv4'] 的正斜杠
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-30
相关资源
最近更新 更多