【问题标题】:Python, selenium find_element_by_link_text not workingPython,硒 find_element_by_link_text 不起作用
【发布时间】:2019-02-12 09:20:57
【问题描述】:

我正在尝试抓取一个网站。我必须在哪里按链接。为此,我正在使用带有 chrome 驱动器的 selenium 库。

from selenium import webdriver

url = 'https://sjobs.brassring.com/TGnewUI/Search/Home/Home?partnerid=25222&siteid=5011&noback=1&fromSM=true#Applications'
browser = webdriver.Chrome()
browser.get(url)
time.sleep(3)

link = browser.find_element_by_link_text("Don't have an account yet?")
link.click()

但它不起作用。任何想法为什么它不起作用?有解决办法吗?

【问题讨论】:

    标签: python selenium-webdriver web-scraping selenium-chromedriver


    【解决方案1】:

    您可以通过多种方式完成它。这是其中之一。我使用driver.execute_script() 命令强制点击。您不应该进行硬编码延迟,因为它们非常不一致。

    修改后的脚本:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait as wait
    from selenium.webdriver.support import expected_conditions as EC
    
    url = 'https://sjobs.brassring.com/TGnewUI/Search/Home/Home?partnerid=25222&siteid=5011&noback=1&fromSM=true#Applications'
    
    driver = webdriver.Chrome()
    driver.get(url)
    
    item = wait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a[ng-click='newAccntScreen()']")))
    driver.execute_script("arguments[0].click();",item)
    

    【讨论】:

    • 嗨,你是怎么想出“arguments[0].click();”的&“一个[ng-click='newAccntScreen()']”。抱歉,我是这些新手。
    猜你喜欢
    • 1970-01-01
    • 2017-08-06
    • 2018-12-15
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-15
    相关资源
    最近更新 更多