Как найти кнопку «Избранное» и щелкнуть ее с помощью Selenium WebDriver? - PullRequest
1 голос
/ 22 марта 2019

Обновленное описание:

Вот список с Redfin.com https://www.redfin.com/CA/Sunnyvale/735-Grape-Ave-94087/home/1835008,, который я хочу найти и нажать кнопку «Избранное» в правом верхнем углу.Я попробовал код в старом описании, а также все предложения других, но ни одно из них не работает.

Может кто-нибудь подсказать мне, как найти значок в веб-драйвере Selenium?

Большое спасибо!

+++++++++++++++++ НИЖЕ СТАРЫЕ ОПИСАНИЕ ПРОБЛЕМЫ ++++++++++++++++++++++++++ У меня есть эта кнопка:

<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 ]

1 голос
/ 23 марта 2019

Вот рабочий код.

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()
1 голос
/ 23 марта 2019

Вы можете использовать следующую XPath:

//div[@title='Favorite']

Надеюсь, это поможет вам!

1 голос
/ 23 марта 2019

Чтобы щелкнуть по элементу, вы можете указать целевой дочерний тег <span> и использовать одну из следующих стратегий локатора :

  • Использование 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()
    
1 голос
/ 22 марта 2019

Попробуйте

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

Или вы могли бы сделать

browser.find_elements_by_css_selector("div[title=\"Favorite\"]");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...