簡體   English   中英

使用包含在 Selenium webdriver XPATH 中查找文本

[英]Finding text in Selenium webdriver XPATH using contains

我正在工作 Python 的 30 天 - 第 16 天 - 使用 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 DOM

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM