Python+Selenium:初步使用Chrome谷歌浏览器 |
您所在的位置:网站首页 › 打开谷歌游览器 › Python+Selenium:初步使用Chrome谷歌浏览器 |
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 selenium6、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_selectorselenium对页面对象的定位器的方法: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 |