? ?
活动地址:CSDN21天学习挑战赛
文章目录 一、Selenium搭建环境1、安装2、安装Chrome安装浏览器驱动WebDriver1)查看Chrome浏览器版本2)在驱动器版本里选择一个版本相近的3)常用方法或属性(1)实战有界面(2)实战无界面(3)常用参数说明(4)八中元素定位方法(5)元素的操作(6)前进后退(7)嵌套JS 一、Selenium搭建环境Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持目前比较主流的浏览器。它也实现了诸多自动化功能,比如软件自动化测试,检测软件与浏览器兼容性,自动录制、生成不同语言的测试脚本,以及自动化爬虫等。
1、安装 pip install selenium 2、安装Chrome安装浏览器驱动WebDriverChrome驱动下载地址:http://chromedriver.storage.googleapis.com/index.html
1)查看Chrome浏览器版本 2)在驱动器版本里选择一个版本相近的3)常用方法或属性
headless支持无界面命令模式
注意:chrome_options已经弃用了,改为options即可
DeprecationWarning: use options instead of chrome_optionsfrom selenium import webdriver # 创建Chrome浏览器对象 chrome_opt = webdriver.ChromeOptions() # 开启无界面模式 chrome_opt.add_argument('--headless') # 禁用gpu chrome_opt.add_argument('--disable-gpu') # 实例化配置带有driver对象 browser = webdriver.Chrome(options=chrome_opt) # 发送请求 browser.get('https://·/') # 打印标题 print(browser.title) # 退出浏览器 browser.quit() (3)常用参数说明
获取单个元素 driver.find_element()
find_element(By.ID, 'kw') find_element(by=By.ID, value='kw')获取多个元素 driver.find_elements()
find_elements(By.ID, 'kw') find_elements(by=By.ID, value='kw') 案例 from selenium import webdriver from selenium.webdriver.common.by import By import time # 打开chrome浏览器 driver = webdriver.Chrome() # 打开百度搜索页面 driver.get('http://·/') # 通过id定位元素 id = driver.find_element(By.ID, 'wrapper') print(id) # 通过name定位元素 name = driver.find_element(By.NAME, 'password') print(name) # 通过name定位多元素 names = driver.find_elements(By.NAME, 'password') print(names) # 定位class元素 class_name = driver.find_element(By.CLASS_NAME, 'cc') print(class_name) # 定位class_name多元素 class_names = driver.find_elements(By.CLASS_NAME, 'cc') print(class_names) # 通过xpath来获取元素 xpath = driver.find_element(By.XPATH, '//*[@id="wrapper"]/div[6]/div/p[2]') print(xpath) print(xpath.text) # 通过link_text标签来获取元素(精确定位) link_text = driver.find_element(By.LINK_TEXT, '设为首页') print(link_text) # 通过link_text标签来获取元素(模糊定位) partial_link_text = driver.find_element(By.PARTIAL_LINK_TEXT, '首页') print(partial_link_text) # 通过tag标签来获取元素 tag = driver.find_element(By.TAG_NAME, 'img') print(tag) # 强制等待2秒查看效果 time.sleep(2) # 关闭浏览器 driver.quit()结果:
D:\python383\python.exe D:/pythonproject/csdn/RequestsDemo.py <selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="6d607d2d-cc8e-46a1-87ac-bf4c1324fb98")> ================================================================================ 分割线 ================================================================================ <selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="1cca4773-69f9-4059-b29c-e534b907af6c")> [<selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="1cca4773-69f9-4059-b29c-e534b907af6c")>] ================================================================================ 分割线 ================================================================================ <selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="09e4359e-d6fb-4c6e-881e-c25e53689cd7")> [<selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="09e4359e-d6fb-4c6e-881e-c25e53689cd7")>, <selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="f99f220f-70f1-4dae-970c-9a0a1c5f537c")>] ================================================================================ 分割线 ================================================================================ <selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="61ef193c-bbf0-4619-b847-f7566b527a66")> Copyright ? 2021 笔趣阁 京ICP备88080001号 ================================================================================ 分割线 ================================================================================ <selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="ccfe2632-e494-49b2-bd4d-138642a4bc13")> ================================================================================ 分割线 ================================================================================ <selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="ccfe2632-e494-49b2-bd4d-138642a4bc13")> ================================================================================ 分割线 ================================================================================ <selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="aa815fdd-a8af-475b-bb4f-6214e137b118")> Process finished with exit code 0 (5)元素的操作 from selenium import webdriver from selenium.webdriver.common.by import By import time # 打开chrome浏览器 driver = webdriver.Chrome() # 打开百度搜索页面 driver.get('http://·/') # 通过id定位元素 # 通过xpath来获取元素文本信息 xpath = driver.find_element(By.XPATH, '//*[@id="wrapper"]/div[6]/div/p[2]') print(xpath.text) # 通过xpath来获取元素属性信息 xpath = driver.find_element(By.TAG_NAME, 'a') print(xpath.get_attribute('href')) # 强制等待2秒查看效果 time.sleep(2) # 关闭浏览器 driver.quit() (6)前进后退 # 前进 browser.forward() # 后退 browser.back() (7)嵌套JS from selenium import webdriver import time browser = webdriver.Chrome() url = 'http://·/' browser.get(url) # js语句 滚动条拉倒最底部 js = "var q=document.documentElement.scrollTop=10000" # 执行js的方法 browser.execute_script(js) time.sleep(3) browser.quit()
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。 |
标签: #Python #selenium #打开chrome浏览器