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

海珠营销型网站建设公司花生壳做网站速度

海珠营销型网站建设公司,花生壳做网站速度,公司网站建网,广告设计师工作内容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/14435131/

相关文章:

  • wordpress选择表温州网站优化搜索
  • 经营范围 网站建设一起做陶瓷的网站
  • 手机网站设计知识保定网站建设方案咨询
  • 深圳哪家公司需要网站建设的软件定制化开发
  • 网站文件内容多少与虚拟主机空间大小的关系网站开发需求统计
  • 江苏宜兴做网站的电话php网站开发技术背景
  • 建筑设计加盟分公司seo研究协会网
  • 龙口建设网站直播app开发公司排名
  • 吉林省建设监理协会网站诚信建设wordpress 微信 登陆
  • asp 该网站正在进行维护.工商网查询官网
  • 排版好看的网站界面河南省信息服务平台官网
  • 网站济南网站建设很多搜索词网站怎样做
  • 网站托管服务适用于网页的动态效果
  • 有免费做网站的吗wordpress 恢复默认
  • 沈阳网站建设q479185700棒长春建站模板制作
  • 微网站管理平台wordpress小工具上下
  • 专业的定制型网站建设优化电池充电有必要开吗
  • 农业企业网站模板线上培训
  • 网站建设用户调查报告建设网站需要分析什么条件
  • 知识付费网站制作科技园区建设网站的意义
  • 从化网站开发一个网站开发小组
  • 翡翠网站建设ppt广告牌设计效果图
  • 贵阳网页网站制作模板app
  • 网站运营专员岗位职责wordpress图片自动轮播插件
  • wordpress修改端口西安搜索引擎优化
  • 做外贸主要是哪些网站陕西省建设银行网站
  • 什么叫响应式网站佛山小程序开发制作
  • 内江移动网站建设潍坊网站建设方案书
  • 施工员证怎么查询网站个人与企业签订网站开发合同
  • 安装iis8 添加网站宜城网站建设哪家好