如何找到“收藏夹”按钮并使用Selenium WebDriver单击它?

时间:2019-03-22 20:51:22

标签: python selenium xpath

更新的说明:

这是Redfin.com https://www.redfin.com/CA/Sunnyvale/735-Grape-Ave-94087/home/1835008上的列表,我要查找并单击的是右上角的“收藏夹”按钮。我已经尝试了旧说明中的代码以及其他人的所有建议,但没有一个起作用。

有人可以指导我如何在Selenium Webdriver中找到图标吗?

非常感谢!

+++++++++++++++++以下是旧问题说明+++++++++++++++++++++++++ 我有这个按钮:

<div role="button" title="Favorite" tabindex="0" class="clickable button tertiary-alt" data-rf-test-name="homeControlButton">
<span><svg class="SvgIcon rfSvg favorite svg-icon-off-color" style="height:24px;width:24px"><svg viewBox="0 0 24 24"></svg></svg></span>
</div>

但是我尝试通过以下方式查找XPath:

browser.find_element_by_xpath("//*[@class='clickable button tertiary-alt' and @title='favorite']").click()

但是它不起作用。有帮助吗?

4 个答案:

答案 0 :(得分:1)

尝试

browser.find_elements_by_css_selector(".clickable.button.tertiary-alt");

或者您可以

browser.find_elements_by_css_selector("div[title=\"Favorite\"]");

答案 1 :(得分:1)

您可以使用以下XPath:

//div[@title='Favorite']

希望对您有帮助!

答案 2 :(得分:1)

要点击该元素,您可以定位子<span>标签,也可以使用以下任一Locator Strategies

  • 使用css_selector

    browser.find_element_by_css_selector("div.clickable.button.tertiary-alt[title='Favorite']>span").click()
    
  • 使用xpath

    browser.find_element_by_xpath("//div[@class='clickable button tertiary-alt' and @title='Favorite']/span").click()
    

答案 3 :(得分:1)

这是工作代码。

WebDriverWait(driver,10).until(EC.presence_of_element_located((By.CSS_SELECTOR , "div[data-rf-test-name='abp-favoriteButton'] div[role='button']")))
driver.find_element_by_css_selector("div[data-rf-test-name='abp-favoriteButton'] div[role='button']").click()