【问题标题】:Writing Correct Xpath In Selenium Python在 Selenium Python 中编写正确的 Xpath
【发布时间】:2020-05-20 11:11:29
【问题描述】:

这是我正在尝试处理的链接:

https://www.supremenewyork.com/shop/all/jackets

例如我要查找并点击 Wool Suit Black Pinstripe:

driver.find_element_by_xpath('//*[contains(text(),"Wool Suit Black Pinstripe")]').click()

这是我用过的,但 selenium 不断抛出异常。谁能指出我正确的方向,为什么会这样?

【问题讨论】:

    标签: python selenium selenium-webdriver web-scraping


    【解决方案1】:

    您应该尝试将其更改为

    driver.find_element_by_xpath("//*[text()[contains(.,'Black Pinstripe')]]").click()
    

    编辑:我刚刚意识到您作为示例发送的文本(“Wool Suit Black Pinstripe”)并非都在website 上的同一个网络元素中

    当您检查页面时,您会发现“Wool Suit”在一个 div 中,而“Black Pinstripe”在另一个 div 中。这可能很棘手,但有些网站就是这样工作的。

    尽管如此,我已将答案更新为仅使用“黑色细条纹”文本,这样它就会识别 WebElement 并单击您想要的位置。

    如果还是不行,你也可以试试链接文字的方法。

    driver.find_element_by_link_text("Black Pinstripe") 
    

    driver.find_element_by_partial_link_text("Black Pinstripe") 
    

    【讨论】:

    • 这个抛出和之前一样的异常,无法定位元素
    • 我刚刚添加了一些更好的解释。检查它是否对您有帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多