在python中安裝和配置selenium 3.141.0


我安裝的python和pycharm community edition分別是:Python 3.8.5 和PyCharm 2020.2 (Community Edition)

在commandline中,運行:pip install selenium

在PyCharm中,點擊 File -> Settings -> Project -> Python Interpreter -> + -> 輸入selenium,點擊install

import re
from selenium import webdriver
from time import sleep

if __name__ == '__main__':
    # 后面是你的瀏覽器驅動位置,記得前面加r'','r'是防止字符轉義的
    driver = webdriver.Chrome(r'D:\panda\webDriver\chromedriver.exe')
    driver.get("https://www.newsmth.net/")
    driver.find_element_by_id("id").send_keys("********") #自己手動去水木注冊一個賬戶
    driver.find_element_by_id("pwd").send_keys("********")
    driver.find_element_by_id("b_login").click()
    sleep(1)
    driver.maximize_window()
    # 顯示當前URL
    # print(driver.current_url)
    driver.get(driver.current_url)
    driver.find_element_by_id("b_search").send_keys("社會招聘\n")
    sleep(1)

    print(driver.current_url)
    href_list = []
    items = driver.find_elements_by_xpath("//section[@id='body']/div[@class='b-content']/table/tbody/tr/td/a")
    # 右鍵“檢查”或“查看源代碼”可以看到元素的xpath
    for item in items:
        if "測試" in item.text or "QA" in item.text:
            print(item.text)
            href_list.append(item.get_property("href"))
            print(item.id, item.get_property("href"))  # id會改變,不能后退,后退得重新找元素。
            sleep(1)
    # print(href_list)
    for i1 in href_list:
        items = driver.find_elements_by_xpath("//section[@id='body']/div[@class='b-content']/table/tbody/tr/td/a")
        for i2 in items:
            if i2.get_attribute("href") == i1 and ("測試" in i2.text or "QA" in i2.text):
                print(i2.id, end=" ")
                i2.click()
                sleep(1)
                print(driver.current_url)
                driver.back()
                sleep(1)
                break   #后退得重新找元素,所以這里break

    sleep(1)

    driver.quit()

這里需要注意:

1. driver.get(driver.current_url)  有的時候如果沒有這句,可能定位不到那個元素

2. driver.back()  這個是goback操作,但是對於右側為動態item,后退會導致id變化,以至於找不到曾經的那些元素。

3. 關於元素的定位,可以右鍵點擊鼠標,選擇“查看網頁源代碼”或者“檢查”能找到。如果根據xpath來定位,可以根據id找到相對路徑第一層的元素,然后往下找。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM