在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