Я работаю над 30 Days of Python — Day 16 — Scrape & Automate для защищенных паролем приложений с Selenium и Python.
Однако я обнаружил, что использование XPATH для поиска кнопки «Подписаться» в Instagram не работает.
def click_to_follow(browser):
my_follow_btn_xpath = '//*[contains(text()='follow')]'
follow_btn_els = browser.find_elements(By.XPATH, my_follow_btn_xpath)
for btn in follow_btn_els:
try:
btn.click()
except:
pass
new_user = 'ted'
new_user_url = f'http://www.instagram.com/{new_user}/'
browser.get(new_user_url)
click_to_follow(browser)
Выше приведен код, но он показывает, что у меня неверный синтаксис.
my_follow_btn_xpath = '//*[contains(text()='follow')]'
^^^^^^
SyntaxError: invalid syntax
Может ли кто-нибудь помочь с этим? У меня есть поиск похожих сообщений, но я все еще не могу разобраться.
Вы не можете использовать одинарные кавычки внутри вашего xpath.
Измените это:
my_follow_btn_xpath = '//*[contains(text()='follow')]'
к этому:
my_follow_btn_xpath = '//*[contains(text() = "follow")]'
Это будет работать:
Примечание: вы взяли Follow
как follow
. Текст Follow
, а не follow
ДОМ
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//div[text()='Follow']"))).click()
Это будет конкретный элемент, который вам нужен:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH,"//h1//parent::div//div[text()='Follow']"))).click()