没备案的网站怎么做淘客,找合作项目的平台,php技术的网站建设实录方案,大庆网站设计一、什么是Selenium #xff1f;
Selenium 是一个浏览器自动化测试框架#xff0c;它主要用于web应用程序的自动化测试#xff0c;其主要特点如下#xff1a;开源、免费#xff1b;多平台、浏览器、多语言支持#xff1b;对web页面有良好的支持#xff1b;API简单灵活易…一、什么是Selenium
Selenium 是一个浏览器自动化测试框架它主要用于web应用程序的自动化测试其主要特点如下开源、免费多平台、浏览器、多语言支持对web页面有良好的支持API简单灵活易于使用支持分布式测试用例执行。
Selenium经历了两个版本Selenium1.0和2.0Selenium1.0主要由以下几部分构成
Selenium IDE是一个嵌入到Firefox中的插件可以实现浏览器的录制于回放功能。Selenium Grid自动化测试辅助工具可以很方便地同时在多台机器上并行运行多个测试事例。Selenium RC是Selenium的核心工具支持多种不同的语言编写的测试脚本通过Selenium RC的服务器作为代理服务器去访问应用从而达到测试的目的。主要分为以下两部分 1.Client用来编写测试脚本来控制Selenium server的库。 2.Server负责控制浏览器的行为包含三部分LauncherHttpProxyCore。
明白了Selenium1.0的家族关系Selenium2.0可以简单的认为是将WebDriver加入到了Selenium RC这一部分中去。那么Selenium RC和WebDriver有什么区别呢 RC和 WebDriver 类似都可以看做是一套操作web页面的规范。当然他们的工作原理不一样。
Selenium RC 在浏览器中运行 JavaScript 应用使用浏览器内置的 JavaScript 翻译器来翻译和执行selenese 命令Selenium 命令集合 。WebDriver 通过原生浏览器支持或者浏览器扩展直接控制浏览器。WebDriver 针对各个浏览器而开发取代了嵌入到被测 Web 应用中的 JavaScript。与浏览器的紧密集成支持创建更高级的测试避免了JavaScript 安全模型导致的限制。除了来自浏览器厂商的支持WebDriver 还利用操作系统级的调用模拟用户输入。 二、Selenium环境搭建
1.安装python
python的安装此处就不细说去python官网下载地址下载对应的python版本安装注意环境变量的配置。
2.安装Selenium
使用pip 命令安装 selenium pip install selenium , Mac电脑 安装过python3 使用pip3 install selenium 来安装。
3.安装浏览器驱动
使用chrome浏览器需要下载对应版本的chromedriver
4.安装上述工具后可以测试下环境是否正常使用以下这段代码
# -*- coding:utf-8 -*-
from selenium import webdriver
driver webdriver.Chrome()
driver.get(http://baidu.com)
driver.close()
浏览器能正常打开百度那么环境安装是正常的
三、WebDriver API 1.定位元素 通过id属性来定位元素id属性在html文档中必须具有唯一性 find_element_by_id()方法 通过name属性来定位元素name属性在当前页面中 find_element_by_name()方法 通过class属性来定位元素 find_element_by_class_name()方法
通过tag来定位元素 find_element_by_tag_name()方法
通过link元素标签对之间的文本信息来定位元素 find_element_by_link_text()方法
通过partial link定位元素和link类似只不过是部分文本信息来进行定位 find_element_by_partial_link_text()方法
find_element_by_xpath()方法 绝对路径来定位
find_element_by_xpath(/html/body/.........) 文本框
find_element_by_xpath(/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input)
通过CSS定位元素
1.通过id属性定位元素
文本框
find_element_by_css_selector(#kw) 按钮find_element_by_css_selector(#su)
2.通过class属性定位元素
文本框
find_element_by_css_selector(.s_ipt) 按钮find_element_by_css_selector(.bg s_btn)
3.通过其他属性值来定位元素
文本框
find_element_by_css_selector([name wd])find_element_by_css_selector([maxlength 255])find_element_by_css_selector([autocomplete off])
1.控制浏览器 控制浏览器窗口大小
driverwebdriver.Firefox()
#设置窗口大小为xy
driver.set_window_size(x,y)
#最大化窗口
driver.maxmize_window()
2.元素操作
当我们获取了元素之后还要对其进行操作如点击按钮、输入文字、提交表单等。大多数页面交互的方法通过WebElement接口提供常用的有
clear() 清除文本框中的文本send_keys(*value) 模拟按键输入click() 单击元素 这几个方法很简单很方便使用。 submit() 用于提交表单例如搜索框中的提交按钮。比如我们可以用如下代码直接输入搜索的关键字后用submit()提交而不用获取搜索按钮再点击。
driver.find_element_by_css_selector(#kw).send_keys(selenium2).submit() 还有几个常用的方法 size() 获取元素的大小尺寸 text()获取元素的文本 is_displayed()元素是否可见 鼠标、键盘事件 模拟鼠标右键、双击、悬停、拖拽等操作会用到ActionChains类。 selenium.webdriver.common.action_chains.ActionChains(driver)当调用ActionChains的方法时不会立即执行而是会将所有的操作按顺序存放在一个队列里当你调用perform()方法时队列中的时间会依次执行。 ActionChains方法列表
click_and_hold(on_elementNone) ——点击鼠标左键不松开
context_click(on_elementNone) ——点击鼠标右键
double_click(on_elementNone) ——双击鼠标左键
drag_and_drop(source, target) ——拖拽到某个元素然后松开
drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开
key_down(value, elementNone) ——按下某个键盘上的键
key_up(value, elementNone) ——松开某个键
move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标
move_to_element(to_element) ——鼠标移动到某个元素
move_to_element_with_offset(to_element, xoffset, yoffset) ——移到距某个元素左上角多少距离的位置
perform() ——执行链中的所有动作
release(on_elementNone) ——在某个元素位置松开鼠标左键
send_keys(*keys_to_send) ——发送某个键到当前焦点的元素
send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素
设置等待时间 显示等待主要使用的类和方法WebDriverWait、uitil\until_not、Expected Conditions。 隐式等待 implicitly_wait
其他操作 还有其他一些操作如上传下载文件、操作cookie、验证码的处理等等操作还没有用到过用到的时候再去学习就好了。 熟练使用以上的各部分可以写出各种常用的脚本我们算是入门Selenium了。
感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取