实现web自动化测试1、简介它是一个用来对网页应用展开测试的工具。这个测试是直接跑在浏览器里面的, 那感觉就好像是真实的人在操作一样子。它所支持的一些浏览器有那个IE, 具体来说是七、八、九、十、十一这些版本。还有Opera等浏览器也是支持的。这个工具主要能干的事情包括这么一桩: 就是去测试跟浏览器的兼容情况到底是咋样的。也就是要去检查你那应用程序好不好使, 看它能不能在各个不同的浏览器里面很好地工作, 还要看它在不同的操作系统头上能不能很好地干活儿。我们要去测试系统方面的功能, 具体来说就是去做创建回归测试这个事儿, 这样做是为了检验软件的功能和满足用户的需求。它支持自动录音的动作, 还能自动生成脚本, 这些脚本可以是.Net语言的, 也可以是Java语言的, 还可以是Perl语言的。我们在这里使用 with 版本, 主要用来模拟用户在网站上面的操作和请求, 以便于我们能够更好的进行爬虫获取数据。2、的安装和使用在另一篇文章中, 曾经介绍过有关中库安装的详细过程, 实际上这一种安装的操作方法和其他的软件库进行安装的时候是完全相同的, 我们可以通过搜索的方式来进行安装这里指的是我之前写的那一篇。同时, 当然你具备另一种选择那就是直接使用命令行这一方式进行安装操作, 当你处于macOS系统环境之下的时候, 需要去打开终端程序, 然后执行下面这条命令。pip3 install selenium先说说前提, 意思是说, 你的那个电脑里头, 必须得先把3.5这个玩意儿给装上才行。为啥这么说? 因为macOS系统, 它自己带的那个版本是2.5往上的。而我这边写这篇文档用的, 是3.5的版本。我们继续以网站作为例子, 来演示一个比较简单的使用场景, 下面的这段代码的作用是, 先找出网页里的那个搜索框组件, 然后再往里面输入文本内容, 以此来完成搜索操作。from selenium import webdriverfrom selenium.webdriver.common.keys import Keys # 导入Keysdriver webdriver.Chrome(/Users/Pro-007/Desktop/chromedriver)driver.get(http://gitbook.cn/gitchat/hot)assert GitChat in driver.title # 如果关键字GitChat不在网页的中程序跳出否则继续tag driver.find_element_by_id(orderedChatSearch) # 通过id值获取HTML的标签元素这里获取的是搜索框tag.clear() # 清空搜索框的内容tag.send_keys(面试) # 在搜索框中填入搜索值tag.send_keys(Keys.RETURN) # 模拟敲回车键# 如果没有结果程序退出assert No results found. not in driver.page_sourcedriver.close() # 关闭driver这属于是经过模拟而得到的搜索结果。模拟搜索.png3、的导航操作find_element_by_id #根据id值定位标签元素find_element_by_namefind_element_by_xpath #通过使用xpath匹配定位标签元素find_element_by_link_textfind_element_by_partial_link_textfind_element_by_tag_namefind_element_by_class_namefind_element_by_css_selector #通过CSS选择器定位标签元素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借助于导航手段来实现对标签元素的定位动作的完成。于是就可以获取相关的标签对象。然后就可以针对其执行相应的操作内容。举例来说, 在上述所描述的在搜索框里面输入面试这个字的时候的情况之下。浏览器方面能够自动地启动对应的搜索功能流程。这种情况下就不需要用户再去执行任何的操作行为来推动这一过程了。4、把我们要进行的爬虫操作继续开展下去。在上面那篇旧文章里头, 咱们基本上就算是把那个爬虫的动作给完成了, 可是最后发现一个事儿, 就是每次到头来只能抓取到20条数据, 这显然不是咱们内心深处想要达成的那个目的。所以接下来, 咱们就要利用上面那些个现成的知识去搞一下, 也就是模拟用户往上滑动屏幕的那个操作动作, 借由这个办法来得到数量更多的一些数据信息。在这个过程里, 咱们只需要去弄好一个函数方法就完事了, 毕竟这点小事难不倒咱们。注意, 这个操作需要跟另一篇文章放在一起用才能起作用哦这里有直接的跳跃通道可以点取。#代码示例def scroll_down(self, driver, times):for i in range(times):print(开始执行第, str(i 1), 次上拉操作)# 执行js代码实现上拉操作driver.execute_script(window.scrollTo(0, document.body.scrollHeight);)print(第%s次上拉操作执行完毕 % str(i 1))print(开始等待网页加载...)# 需要 import timetime.sleep(20) # 等待20秒等页面加载出来后在进行下拉操作这个值根据网速自定义结果输出爬虫结果.png5、小结该网络数据采集程序已经宣告终结, 这代表了我头一回提笔写作, 特意拿来此文本记录在下半程研习阶段所敲写的各类代码片段, 并且决定把它公开出来分享给各位看官。版权跟使用权都是归到作者手里的, 要是想要进行转发或者是开展内容的合作事情的话, 就需要主动去联系一下作者的。关于社区里面的内容, 有提示说那部分有可能不是真人写的, 而是让人工智能帮助生成出来的, 大家在浏览的时候一定要注意用常识来判断, 还要参考很多别的信息进行小心分辨。