近期在用Python写自动化程序
下面来说一说Selenium相关的知识点
用的Chrome来举例
准备工作:
下载Webdriver文件
Chrome
Chrome浏览器中输入chrome://version/来查看版本
实测的话 不同的webdriver对应不同的chrome版本 问题不大可以正常使用版本跨度不大应该没问题
官方的镜像(国内好像无法访问)
https://sites.google.com/a/chromium.org/chromedriver/home
http://chromedriver.storage.googleapis.com/index.html
阿里巴巴镜像【推荐】
http://npm.taobao.org/mirrors/chromedriver/
Firefox
Github中的下载地址
https://github.com/mozilla/geckodriver/releases/
阿里巴巴镜像【推荐】
https://npm.taobao.org/mirrors/geckodriver/
调用Chrome设置
#导入Selenium 中的 Webdriver模块
from selenium import webdriver
driver = webdriver.Chrome()
自定义UA
options = webdriver.ChromeOptions()
options.add_argument("user-agent=Mozilla/5.0 xxxxxxxxxxxxxxxxx")#自行设置
driver = webdriver.Chrome(options=options)
浏览器全屏显示
driver.maximize_window()
浏览器导入cookie
search_url = 'http://www.baidu.com'
cookie = 'xxxxxxxxxxxx'
driver.get(search_url)
driver.add_cookie({'domain': 'www.baidu.com', 'name': 'BDUSS', 'value': f'{cookie}'})
driver.get(search_url)
#这个设置Cookie有点坑必须先访问后才能设置 再次访问才生效,cookie设置的话要一个参数一参数的设置要注意格式
#上面的我配置的百度的只需要BDUSS就可以了,上面是chrome浏览器的设置方法Firefox的这样设置貌似会报错
#Firefox的只能设置当前站的cookie
打开指定网址
search_url = 'http://www.baidu.com'
driver.get(search_url)
选择指定框/按钮/等
driver.find_element_by_id() #选择指定 ID 的
driver.find_element_by_name() #选择指定 name 的元素(没用过)
driver.find_element_by_xpath() #选择指定 Xpath语法选择 的元素【推荐】
driver.find_element_by_class_name() #选择指定 class_name 的元素【常用】
driver.find_element_by_css_selector() #选择指定 CSS 的元素(没用过)
driver.find_element_by_link_text() #选择指定 超文本 的元素(没用过)
#本人踩过的坑 find_element 如果是循环匹配的话要写成 find_elements
#选择后后面一般的写法为
driver.find_element_by_xpath().click() #点击这个元素(如果有超链接那么就进入超链接页面)
driver.find_element_by_xpath().clear() #应该是清除所选框框内的内容例如输入框内的内容
#输入自定文字keywords自行替换 在这当中也可输入键盘上内容例如:CTRL+V等等不过要导入模块
from selenium.webdriver.common.keys import Keys
driver.find_element_by_xpath().send_keys('keywords')
driver.find_element_by_xpath().send_keys(Keys.CONTROL, 'v')
暂时就讲这么多
3 条评论
文章紧扣主题,观点鲜明,展现出深刻的思考维度。
全球视野与本土实践结合恰到好处。
这篇文章如同一首动人的乐章,触动了读者内心深处的柔软。