当前位置: 首页 > news >正文

海珠营销型网站建设公司24 手表网站

海珠营销型网站建设公司,24 手表网站,google搜索引擎官网,制作企业网站素材视频Selenium 作为一款 Web 自动化测试框架#xff0c;提供了诸多操作浏览器的方法#xff0c;这里对其中的常用方法做详细介绍。 定位节点 Selenium 提供了 8 种定位单个节点的方法#xff0c;如下所示#xff1a; 定位节点方法方法说明find_element_by_id()通过 id 属性值定…Selenium 作为一款 Web 自动化测试框架提供了诸多操作浏览器的方法这里对其中的常用方法做详细介绍。 定位节点 Selenium 提供了 8 种定位单个节点的方法如下所示 定位节点方法方法说明find_element_by_id()通过 id 属性值定位find_element_by_name()通过 name 属性值定位find_element_by_class_name()通过 class 属性值定位find_element_by_tag_name()通过 tag 标签名定位find_element_by_link_text()通过a标签内文本定位即精准定位。find_element_by_partial_link_text()通过a标签内部分文本定位即模糊定位。find_element_by_xpath()通过 xpath 表达式定位find_element_by_css_selector()通过 css 选择器定位 假设下面代码某个页面的代码片段如下所示 html head body link#cc0916a idlogo hrefhttp://www.CSDN.net onclickform idform classfm namef actionwww.CSDN.netspan classbtn/spaninput idkw classs_ipt_wr namewd value maxlength255 autocompleteoff /body /head /html 下面使用表格中提供的方法定位 input 输出框。如下所示 #创建browser是浏览器对象 browser webdriver.Chrome() #访问某个url得到上述代码片段 browser.get(url) #通过id定义输入框 browser.dr.find_element_by_id(kw) #通过class定义 browser.find_element_by_class_name(s_ipt_wr) #通过name定位 browser.find_element_by_name(wd) #通过tag name定位: browser.find_element_by_tag_name(input) #通过xpath定位 browser.find_element_by_xpath(//*[idkw]) #通过css选择器定位 browser.find_element_by_css_selector(#kw) 通过 a 标签内的文本内容定位节点如下所示 a classvip hrefhttp://www.CSDN.netCSDN/a a classsearch hrefhttp://www.baidu.comhao123/a 示例如下 #使用全部文本内容定位链接 browser.find_element_by_link_text(CSDN) #使用部分文本内容定位链接 browser.find_element_by_partial_link_text(123) 如果您想定位一组元素方法如下所示 find_elements_by_id() find_elements_by_name() find_elements_by_class_name() find_elements_by_tag_name() find_elements_by_link_text() find_elements_by_partial_link_text() find_elements_by_xpath() find_elements_by_css_selector() 定位一组元素的方法与定位单个元素类似唯一的区别就是 element 后面多了一个 s表示复数因此上述方法的返回值是一个列表您可以使用 for 循环拿到所有的元素节点。 控制浏览器 Selenium 可以操控浏览器的窗口大小、刷新页面以及控制浏览器的前进、后退等 1) 设置浏览器窗口大小、位置 from selenium import webdriver driver webdriver.Chrome() driver.get(http://www.baidu.com) #参数数字为像素点 driver.set_window_size(480, 800) #设置窗口位置 driver.set_window_position(100,200) #同时设置窗口的大小和坐标 driver.set_window_rect(450,300,32,50) #退出浏览器 driver.quit() 2) 控制网页前进、后退、刷新页面 from selenium import webdriver driver webdriver.Chrome() # 访问CSDN首页 first_url http://www.CSDN.net driver.get(first_url) # 访问CSDN second_urlhttps://blog.csdn.net/nav/back-end driver.get(second_url) # 返回后退到CSDN首页 driver.back() # 前进到后端博客页 driver.forward() # 刷新当前页面相当于F5 driver.refresh() # 退出/关闭浏览器 driver.quit() WebDriver常用方法 上文中介绍了如何定位元素以及如何设置浏览的大小、位置。 定位元素节点只是第一步 定位之后还需要对这个元素进行操作 比如单击按钮或者在输入框输入文本 下面介绍 WebDriver 中的最常用方法 # 请求url get(url) # 模拟键盘输入文本 send_keys (value) # 清除已经输入的文本 clear() # 单击已经定位的元素 click() # 用于提交表单比如百度搜索框内输入关键字之后的“回车” 操作 submit() #返回属性的属性值返回元素的属性值可以是id、name、type 或其他任意属性 get_attribute(name) # 返回布尔值检查元素是否用户可见比如 display属性为hidden或者none is_displayed() 示例如下 from selenium import webdriver import time driver webdriver.Chrome() driver.get(https://www.baidu.com) #模拟键盘输出文本 driver.find_element_by_id(kw).send_keys(CSDN) #单击“百度”一下查找 driver.find_element_by_id(su).click() time.sleep(3) #退出浏览器 driver.quit() 除了上述方法外 WebDriver 还有一些常用属性如下所示 from selenium import webdriver driver webdriver.Chrome() # 获取HTML结构源码 driver.page_source #在源码中查找指定的字符串 driver.page_source.find(字符串) # 返回百度页面底部备案信息 text driver.find_element_by_id(cp).text print(text) # 获取输入框的尺寸 size driver.find_element_by_id(kw).size print(size) 输出结果 ©2015 Baidu 使用百度前必读 意见反馈 京 ICP 证 030173 号{width: 500, height: 22} Selenium事件处理 Selenium WebDriver 提供了一些事件处理函数鼠标、键盘等下面我们对常用的事件函数做简单介绍。 1) 鼠标事件 Selenium WebDriver 将关于鼠标的操作方法都封装在 ActionChains 类中使用时需要引入 ActionChains 类如下所示 from selenium.webdriver.common.action_chains import ActionChains 该类包含了鼠标操作的常用方法 鼠标事件方法说明ActionChains(driver)构造 ActionChains 鼠标对象。click()单击click_and_hold(on_elementNone) 单击鼠标左键不松开context_click()右击double_click()双击drag_and_drop()拖动move_to_element(above)执行鼠标悬停操作context_click()用于模拟鼠标右键操作 在调用时需要指定元素定位。perform()将所有鼠标操作提交执行。 示例如下 from selenium import webdriver #导入 ActionChains 类 from selenium.webdriver.common.action_chains import ActionChains driver webdriver.Chrome() driver.get(http://www.CSDN.net) # 通过xpath表达式定位到要悬停的元素 above driver.find_element_by_xpath(//ul[idad-link-top]/li[1]) # 对定位到的元素执行鼠标悬停操作 ActionChains(driver).move_to_element(above).perform() 2) 键盘事件 Selenium  WebDriver 的 Keys 模块提供了模拟键盘输入的 send_keys() 方法除此之外该模块也提供了操作键盘的其他方法比如复制、粘贴等等。 在使用之前首先需要导入 Keys 类如下所示 from selenium.webdriver.common.keys import Keys 下面列举了一些常用方法 键盘操作方法说明send_keys(Keys.BACK_SPACE)删除键BackSpacesend_keys(Keys.SPACE)空格键(Space)send_keys(Keys.TAB)制表键(Tab)send_keys(Keys.ESCAPE)回退键Escsend_keys(Keys.ENTER)回车键Entersend_keys(Keys.CONTROL,a全选CtrlAsend_keys(Keys.CONTROL,c)复制CtrlCsend_keys(Keys.CONTROL,x)剪切CtrlXsend_keys(Keys.CONTROL,v粘贴CtrlVsend_keys(Keys.F1…Fn)键盘 F1…Fnkeys.down(value,elementNone)按下键盘上的某个键keys.up(value,elementNone)松开键盘上的某个键 示例如下 from selenium import webdriver # 引入 Keys 模块 from selenium.webdriver.common.keys import Keys driver webdriver.Chrome() driver.get(http://www.baidu.com) # 输入框输入内容 driver.find_element_by_id(kw).send_keys(CSDN) # 删除多输入的一个H driver.find_element_by_id(kw).send_keys(Keys.BACK_SPACE) #单击“百度”一下查找 driver.find_element_by_id(su).click() time.sleep(3) driver.quit() 其它键盘操作方法如下所示 # 输入空格键 “Python教程” driver.find_element_by_id(kw).send_keys(Keys.SPACE) driver.find_element_by_id(kw).send_keys(Python教程) # ctrla 全选输入框内容 driver.find_element_by_id(kw).send_keys(Keys.CONTROL, a) # ctrlx 剪切输入框内容 driver.find_element_by_id(kw).send_keys(Keys.CONTROL, x) # ctrlv 粘贴内容到输入框 driver.find_element_by_id(kw).send_keys(Keys.CONTROL, v) # 使用回车键来代替单击操作click driver.find_element_by_id(su).send_keys(Keys.ENTER) 无界面浏览器 Chromedriver 每一次运行都要打开浏览器并执行相应的输入、搜索等操作这样会导致浏览器交互能力变差浪费许多时间。 Selenium 为了增强浏览器的交互能力允许您使用无头浏览器模式也就是无界面浏览器它被广泛的应用于爬虫和自动化测试中。通过以下代码可以设置无头浏览器模式 from selenium import webdriver import time optionswebdriver.ChromeOptions() options.add_argument(--headless)#无界面浏览 driverwebdriver.Chrome(optionsoptions) driver.get(https://www.baidu.com) kw1driver.find_element_by_id(kw) print(driver.title) time.sleep(3) #关闭当前界面只有一个窗口 driver.close() #关闭所有界面 driver.quit() 除了可以设置无头界面之外Selenium 还支持其他一些浏览器参数设置如下所示 opption.add_argument(--window-size600,600) #设置窗口大小 opption.add_argument(--incognito) #无痕模式 opption.add_argument(--disable-infobars) #去掉chrome正受到自动测试软件的控制的提示 opption.add_argument(user-agentXXXX) #添加请求头 opption.add_argument(--proxy-serverhttp://200.130.123.43:3456)#代理服务器访问 opption.add_experimental_option(excludeSwitches, [enable-automation])#开发者模式 opption.add_argument(blink-settingsimagesEnabledfalse) #禁止加载图片 opption.add_argument(langzh_CN.UTF-8) #设置默认编码为utf-8 opption.add_extension(create_proxyauth_extension(proxy_hosthost,proxy_portport,proxy_usernameusername,proxy_passwordpassword))# 设置有账号密码的代理 opption.add_argument(--disable-gpu) # 这个参数可以规避谷歌的部分bug opption.add_argument(--disable-javascript) # 禁用javascript opption.add_argument(--hide-scrollbars) # 隐藏滚动条 执行JS脚本 WebDriver 提供了 execute_script() 方法来执行 JavaScript 代码比如控制浏览器的滚动条。示例如下 from selenium import webdriver from time import sleep # 访问百度 driverwebdriver.Chrome() driver.get(http://www.baidu.com) # 最大化浏览器窗口 driver.maximize_window() # 搜索 driver.find_element_by_id(kw).send_keys(CSDN) driver.find_element_by_id(su).click() sleep(3) # 通过js代码设置滚动条位置数值代表(左边距上边距) jswindow.scrollTo(100,500); #执行js代码 driver.execute_script(js) sleep(5) driver.quit() 如果想了解更多关于 Selenium 的知识请参考官方文档/documentation/ Python教程8天python从入门到精通学python看这套就够了
http://www.hkea.cn/news/14353534/

相关文章:

  • 为学校做网站策划怎么写登录背景图片素材
  • 用网站做淘客怎么赚钱深圳网站制作济南
  • 专业做网站建设 昆山wordpress 免签约
  • 北京网站建设 找奥美通全网营销在网站上签失业保险怎样做
  • 卖域名的网站网站后台网址在哪输入
  • 网站推广目标聚美优品的pc网站建设
  • 网站弹出网站做外链的技巧
  • 如何建设网站制作平台国家时事新闻2021最新
  • 常德市做公司网站的公司seo排名怎么看
  • 玉田县建设工程招标网站域名 备案号 网站的关系
  • 网站建设合同管辖地免费建站哪个好
  • 电子商务网站的开发方式不懂代码怎么做网站
  • 360浏览器打不开90设计网站做的网站如何发布会
  • 揭阳网站建设方案托管网站备案流程及资料
  • 响应式网站服务织梦搭建企业网站
  • ppt在线浏览网站源码电子系统设计网站
  • 网站制作怎样容易关键词排名优化
  • 宁波哪里有做网站的二手房网站建设书
  • 网站策划怎么做一个网站两个域名百度商桥安装方法
  • 做网站要不要交税网站定制制作
  • 做卷子的网站黄石网站制作公司
  • 网站备案名称规定有pc网站
  • 免费网站设计 优帮云个人承包工程合同范本
  • 海外建站推广网上订酒店 网站开发
  • 商城网站页面设计培训方案怎么做
  • 国外学校网站设计西安哪些做网站的公司好
  • 制作网站模板如何开发安卓app
  • 营销型网站开发公司电话dede我的网站
  • 深圳营销型网站建设 宝安西乡昆明seo网站建设费用
  • 网站后台点击添加图片没有反应wordpress 分页制作