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

参加网站建设项目人员保障体系wordpress插件的选择

参加网站建设项目人员保障体系,wordpress插件的选择,男科医院咨询免费,陕西省建设工程施工许可证查询网站三、Selenium 1.初识Selenium 1.1什么是Selenium? Selenium是一个浏览器自动化测试框架,是一款用于Web应用程序测试的工具。框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击&#xf…

三、Selenium

1.初识Selenium

1.1什么是Selenium?

Selenium是一个浏览器自动化测试框架,是一款用于Web应用程序测试的工具。框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。使用简单,可使用Java,Python等多种语言编写用例脚本。

1.2 Selenium的准备

以Chrome为例:

首先在pycharm中安装selenium软件包,版本不要太高,不然会闪退,测试是3.5版本。(补:后续更新到selenium3.10运行无影响)

然后http://chromedriver.storage.googleapis.com/index.html网站中找到对应版本的chromedriver下载win32就可以了,解压之后复制粘贴到项目文件夹的一级目录下。

在这里插入图片描述

准备工作完成。

2. Selenium的使用

2.1为什么要使用Selenium

先看下面一段代码

import urllib.requesturl = 'https://www.jd.com'response = urllib.requst.urlopen(url)content = response.read().decode('utf-8')print(content)

在控制台搜索J_seckill(京东秒杀模块的id),无匹配字段,原因是:模拟浏览器获取不了京东秒杀的内容,因为网站检测到了是模拟浏览器,所以需要用selenium。

2.2 Selenium的基本使用

selenium的使用会调用chrome,所以当弹出页面后需要在设置中将默认搜索引擎改成百度。

获取京东网站中的京东秒杀源码

# 导入selenium
from selenium import webdriver# 创建浏览器对象
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)# 访问网站
url = 'https://www.jd.com'browser.get(url)# page_source获取网页源码
content = browser.page_source
print(content)

在控制台搜索J_seckill可以看到京东秒杀模块。

2.3 Selenium的元素定位

from selenium import webdriverurl = 'https://www.jd.com'path = 'chromedriver.exe'
browser = webdriver.Chrome(path)# 元素定位
# 根据id找到对象
id = browser.find_element_by_id('su')
print(id)
# 根据标签属性的属性值
name = browser.find_element_by_name('wd')
print(name)
# 根据xpath语句来获取对象
xpath = browser.find_element_by_xpath('//input[@id="su"]')
print(xpath)
# 根据标签的名字获取对象
button = browser.find_element_by_tag_name('input')
print(button)
# 使用bs4的语法获取对象
bs = browser.find_element_by_css_selector('#su')
print(bs)
# a标签
text = browser.find_element_by_link_text('新闻')
print(text)

2.4 Selenium获取元素信息

以百度首页为例

from selenium import webdriverpath = 'chromedriver.exe'
browser = webdriver.Chrome(path)url = 'http://www.baidu.com'
browser.get(url)	# 访问网站# 根据id内容获取标签对象
input = browser.find_element_by_id('su')	# 获取标签的属性
print(input.get_attribute('class'))# 获取标签的名字
print(input.tag_name)# 获取元素文本
a = browser.find_element_by_link_text('新闻')
print(a.text)

2.5 Selenium的交互

模拟点击行为,进而操作浏览器

from selenium import webdriver# 创建浏览器对象
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)# url
url = 'https://www.baidu.com'
browser.get(url)import time
# 睡眠两秒	防止操作过快被检测出来时爬虫,被封ip
time.sleep(2)# 获取文本框的对象
input = browser.find_element_by_id('kw')# 在文本框中输入周杰伦
input.send_keys('周杰伦')time.sleep(2)# 获取百度一下的按钮
button = browser.find_element_by_id('su')# 点击按钮
button.click()time.sleep(2)# 滑到底部
js_bottom = 'document.documentElement.scrollTop=100000'
browser.execute_script(js.bottom)time.sleep(2)# 获取下一页的按钮
next = browser.find_element_by_xpath('//a[@class="n"]')# 点击下一页
next.click()time.sleep(2)# 回到上一页
browser.back()time.sleep(2)# 再回去
browser.forward()time.sleep(3)browser.quit()

Phantomjs

1.初识Phantomjs

1.1什么是Phantomjs

Phantomjs是一个无界面浏览器,支持页面元素查找,js的执行等,由于不进行css和gui渲染,运行效率比真实的浏览器快的多。

1.2如何使用Phantomjs

和使用Chrome类似,

即获取PhantomJs.exe的文件路径,

browser = webdriver.PhantomJs(path)

browser.get(url)

可以使用屏幕快照进行验证浏览器是否正常运行。

2. Phantomjs的使用

以百度搜索关键词为例

from selenium import webdriverurl = 'https://www.baidu.com'path = 'phantomjs.exe'browser = webdriver.PhantomJS(path)browser.get(url)browser.save_screenshot('baidu.png')	# 保存快照import time# 获取百度搜索的搜索文本框
input = browser.find_element_by_id('kw')	
input.send_keys('昆凌')	# 输入关键字‘昆凌’time.sleep(2) # 睡眠两秒browser.save_screenshot('kunling.png')

注:(1)phantonmjs因为某些原因已经停止更新,所以新版本的selenium不支持phantomjs,这里使用的是selenium3.5.0

所以现在都是使用handless

(2)当selenium更新到3.10时,输出窗口会出现“ UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless ’ ” 警告,不过不影响运行结果。

Chrome handless

1.初识Chrome handless

1.1什么是Chrome handless

Chrome-headless 模式, Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下 使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致。

1.2使用需求

(1).系统要求:

Chrome

​ Unix\Linux 系统需要 chrome >= 59

​ Windows 系统需要 chrome >= 60

Python3.6

​ Selenium==3.4.*

​ ChromeDriver==2.31

(2).配置:

from selenium.webdriver.chrome.options 
import Optionsfrom selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument('‐‐headless') chrome_options.add_argument('‐‐disable‐gpu') path = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe' chrome_options.binary_location = path browser = webdriver.Chrome(chrome_options=chrome_options) browser.get('http://www.baidu.com/') 

2. Chrome handless的使用

# 无界面的浏览器调用方法
from selenium import webdriver
from selenium.webdriver.chrome.options import Options# 封装的handless
def share_browser():chrome_options = Options()chrome_options.add_argument('--headless')chrome_options.add_argument('--disable-gpu')chrome_options.add_argument('--window-size=1920,1080')  # 设置窗口的大小driver = webdriver.Chrome(options=chrome_options)# path 是Chrome浏览器的文件路径path = r'C:\Program Files\Google\Chrome\Application\chrome.exe'chrome_options.binary_location = pathbrowser = webdriver.Chrome(chrome_options=chrome_options)return browserbrowser = share_browser()url = 'https://www.baidu.com'browser.get(url)browser.save_screenshot('百度.png')

注:未解决的问题:无界面浏览器还是出现了界面(现已解决,原因是selenium版本太低,需更新到3.10)

http://www.yayakq.cn/news/561529/

相关文章:

  • 使用vue做的网站工信部网站查询
  • 网站是什么公司做的wordpress 浮动
  • 网站建设 图片栏目介绍怎么发布自己的网站
  • 企业网站域名空间湖南建设工程竣工备案表查询网站
  • 我的网站为什么打不开怎么回事啊公司网站建设公司排名
  • 杭州做网站哪家最好莱芜雪野湖酒店
  • 湖南省住房与城乡建设厅网站女生学动漫制作专业
  • 网站 改版中装建设吧
  • 建设信用网站的目的wordpress带颜色的文字
  • 专门做店面装修设计的网站建设协会网站的公司
  • 网站怎么修改好之后再上线游戏介绍网站模板下载地址
  • asp网站源码安装流程做中英文网站公司
  • 个人网站被黑了网站规划建设心得与体会
  • 镇平做网站北京海淀月嫂家政公司
  • 如何查网站域名备案信息做网站用什么空间
  • y2学年做的租房网站黑龙江省住房和城乡建设厅
  • wordpress花园网站网站建设项目经验
  • 郑州网站建设开拓者电商网站做互联网金融
  • 怎么建设网站手机网站制作价格东莞网站建设设计
  • 网站建设推广群沧州建设银行招聘网站
  • 龙岗网络营销网站制作哪里好网站没有流量
  • html网站欣赏泉州建站服务
  • 晋中建设集团有限公司网站网站诊断书
  • 个人如何在企业网站做实名认证有哪些互联网公司
  • 怎样做中考成绩查询网站建设银行网站图片大全
  • 宠物托运网站开发长沙网站seo技术
  • 向客户介绍网站建设的话本扮家家室内设计平台
  • 多语种网站建设公司合肥网站建设方案
  • 网站移动端流量双井网站建设
  • 建设图书馆网站开发公司质量管理制度体系的情况说明