Python+Selenium:初步使用Chrome谷歌浏览器

您所在的位置:网站首页 打开谷歌游览器 Python+Selenium:初步使用Chrome谷歌浏览器

Python+Selenium:初步使用Chrome谷歌浏览器

#Python+Selenium:初步使用Chrome谷歌浏览器| 来源: 网络整理| 查看: 265

Python+Selenium:初步使用Chrome谷歌浏览器

 http://www.testclass.net/  测试教程网,专业的selenium 学习网站。

一、配置selenium环境:

1、要自动化测试Chrome谷歌浏览器,首先要下载chromedriver驱动

驱动下载地址1:http://npm.taobao.org/mirrors/chromedriver/ 

驱动下载地址2:http://chromedriver.storage.googleapis.com/index.html 

2、查看对应Chrome版本:

      点击谷歌设置——》左上角设置旁边主菜单——》点击关于Chrome

          

3、下载Chrome谷歌浏览器对应版本的驱动:  Chrome  Drive 。

   下面是谷歌浏览器与chromedriver的版本对应关系,供参考:

发布时间 chromedriver版本 支持的Chrome版本 2019-03-14 Driver     v74 Chrome     v74 2019-02-01 Driver     v2.46 Chrome     v71-73 2018-12-10 Driver     v2.43     Chrome     v70-72 2018-11-19 Driver     v2.44 Chrome     v69-71 2018-10-16 Driver     v2.43 Chrome     v69-71 2018-09-13 Driver     v2.42 Chrome     v68-70 2018-07-27 Driver     v2.41 Chrome     v67-69 2018-06-07 Driver     v2.40 Chrome     v66-68 2018-05-30 Driver     v2.39 Chrome     v66-68 2018-04-17 Driver     v2.38 Chrome     v65-67 2018-03-16 Driver     v2.37 Chrome     v64-66 2018-03-02 Driver     v2.36 Chrome     v63-65 2018-01-10 Driver     v2.35 Chrome     v62-64

注:支持chromeV74版本的driver版本号比较特别一点,不知道之后会不会回归以前正常的版本

4、下载后解压到:python文件夹目录下,

5、在终端安装

pip install selenium

6、Selenium提供了以下方法

     要定位页面中的单个元素方式:

find_element_by_idfind_element_by_namefind_element_by_xpathfind_element_by_link_textfind_element_by_partial_link_textfind_element_by_tag_namefind_element_by_class_namefind_element_by_css_selector

   要定位多个元素(这些方法将返回一个列表):

find_elements_by_namefind_elements_by_xpathfind_elements_by_link_textfind_elements_by_partial_link_textfind_elements_by_tag_namefind_elements_by_class_namefind_elements_by_css_selector

   selenium对页面对象的定位器的方法:find_element和find_elements。(有上面两私有方法)。

# 用例方法:

from selenium.webdriver.common.by import By

driver.find_element(By.XPATH, '//button[text()="Some text"]')

driver.find_elements(By.XPATH, '//button')

这些是By类可用的属性:

ID = "id" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" NAME = "name" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"

6、下面用pycharm 编写selenium webdriver 的一个简单脚本(以百度为给定网页):

 

import time from selenium import webdriver # 1、创建Chrome实例 。 driver = webdriver.Chrome() # 2、driver.get方法将定位在给定的URL的网页 。 driver.get("https://www.baidu.com/") # get接受url可以是如何网址,此处以百度为例 # 3、定位元素 。 # 3.1、用id定位输入框对象, driver.find_element_by_id("kw").send_keys("python") # 3.2、用id定位点击对象,用click()触发点击事件 driver.find_element_by_id('su').click() time.sleep(3) # 延迟3秒 # 4、退出访问的实例网站。 driver.quit()

7、元素的交互操作

     对获取到的元素调用交互操作

import time from selenium import webdriver from selenium.webdriver import ActionChains # 自动化交互 from selenium.webdriver.common.by import By # 按照什么方式查找,By.ID,By.CSS_SELECTOR from selenium.webdriver.common.keys import Keys # 键盘按键操作 from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait #等待页面加载某些元素 # 1、创建Chrome实例 。 driver = webdriver.Chrome() # 2、driver.get方法将定位在给定的URL的网页 。 driver.get("https://www.taobao.com") # 网址淘宝 # 3、page_source——》页面源码 print(driver.page_source) # 4、输入框的实例 input=driver.find_element_by_id("q") # 4.1、发送搜索关键字 input.send_keys("iPhone") time.sleep(1) # 延迟1秒 input.clear() # 清除搜索关键字,做简单交互操作 input.send_keys("iPad") # 重新发送搜索关键字 # 5、点击对象实例化 button=driver.find_element_by_class_name("btn-search") button.click() time.sleep(3) # 延迟3秒 driver.quit()

8、交互动作        把动作附加到交互链中 ,下面是菜鸟网实现一个简单的拖拽动作 。

import time from selenium import webdriver from selenium.webdriver import ActionChains # 1、创建Chrome实例 。 driver = webdriver.Chrome() # 2、driver.get方法将定位在给定的URL的网页 。 driver.get("http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable") # 3、page_source——》页面源码 # print(driver.page_source) # 4、切换到目标元素所在的frame driver.switch_to.frame("iframeResult") # 5、确定拖拽目标的起点 source=driver.find_element_by_id("draggable") # 6、确定拖拽目标的终点 target=driver.find_element_by_id("droppable") # 7、形成动作链 actions = ActionChains(driver) actions.drag_and_drop(source,target) # 8、执行 actions.perform() time.sleep(3) driver.quit()

9、模拟浏览器的前进后退

# 模拟浏览器的前进后退 import time from selenium import webdriver # 1、创建Chrome实例 。 browser=webdriver.Chrome()                                                                                                                                                   

# 2、准备页面链接 browser.get('https://www.baidu.com') browser.get('https://www.taobao.com') browser.get('http://www.sina.com.cn/')                                                                                                                                     

# 3、后退函数back() browser.back() time.sleep(10)                                                                                                                                                                         

# 4、前函数forward() browser.forward() browser.close()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

           



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3