【问题标题】:python selenium clicking based on alt attribute [duplicate]python selenium单击基于alt属性[重复]
【发布时间】:2019-03-23 05:28:36
【问题描述】:

我正在尝试制作一个机器人,可以将商品添加到您的购物篮并结帐。在 Python 3.6.5 中使用 Selenium 单击该项目时出现问题。我希望能够根据 img 标签的 alt 属性点击一个项目,所以这里是“Dek946uiqbq”。

<img src="//assets.supremenewyork.com/157783/vi/dek946uiQBQ.jpg" alt="Dek946uiqbq" width="81" height="81">

到目前为止,我已经这样做了,但它不起作用:

from selenium import webdriver

browser = webdriver.Firefox()
browser.get('https://www.supremenewyork.com/shop/all')
linkElem = browser.find_element_by_link_text('Dek946uiqbq')
linkElem.click()

我是不是用错了方法?

【问题讨论】:

    标签: python selenium selenium-webdriver browser bots


    【解决方案1】:

    Dek946uiqbq 不是文本,find_element_by_link_text 无法检测到它。文本在 html 中是这样的

    <img src="..." alt="...">This is text</img>
    

    要按属性定位元素,您可以使用css_selector

    linkElem = browser.find_element_by_css_selector('[alt="Dek946uiqbq"]')
    

    xpath

    linkElem = browser.find_element_by_xpath('//img[@alt="Dek946uiqbq"]')
    

    【讨论】:

    • 谢谢!它现在正在工作,下一阶段我想将它添加到购物篮中 - 我已经尝试过 browser.find_element_by_name('commit') 但它给了我一个 NoSuchElementException,当 HTML 是这样的:
    • @aboruchovas 尝试添加explicit wait
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 2014-07-14
    • 2014-09-10
    • 2020-01-10
    • 1970-01-01
    相关资源
    最近更新 更多