初始Selenium

Posted 保护眼睛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初始Selenium相关的知识,希望对你有一定的参考价值。

Selenium

Selenium是针对Web应用的开源自动化测试工具,通过编写模拟用户操作的脚本,它会打开浏览器对Web应用进行黑盒测试。可以方便的用于功能测试、兼容性测试、 稳定性测试及并发测试。目前已被主流浏览器厂商广泛支持,同时也是很多其它自动化测试工具(比如,RobotFramework)的底层核心技术。Selenium由IDE、Remote Control(简称RC)、WebDriver、Grid四个工程组成:

1、Selenium IDE
是一个用于录制/回放测试脚本的Firefox附加组件,录制的脚本可以生成基于Selenium RC的测试代码(python、Java、Ruby、C#等)。适用于快速入门,不太适用于实际较大的测试项目;

2、Selenium RC
RC由Server和Client组成两部分组成,Server负责加载/关闭浏览器以及作为HTTP代理来访问Web应用,Clinet支持多种编程语言和测试框架(TestNG、JUnit、NUnit等)。

3、Selenium WebDriver
WebDriver作为Selenium2的核心特性提供比RC更简洁易用的API,是官方推荐的RC替代方案。可以更好的支持动态网页,不需要再额外启动一个独立的Server。

4、Selenium Grid
是Selenium的一个扩展工具,可以很方便地同时在多台机器上和异构环境中并行运行多个RC或WebDriver用例。

WebDriver

启动浏览器后,selenium-webdriver会将目标浏览器绑定到特定的端口,启动后的浏览器则作为webdriver的 remote server。
客户端(也就是测试脚本),借助ComandExecutor发送HTTP请求给sever端(通信协议:The WebDriver Wire
Protocol,在HTTP request的body中,会以WebDriver Wire协议规定的JSON格式的字符串来告诉Selenium我们希望浏览器接下来做什么事情)。
Sever端需要依赖原生的浏览器组件,转化Web Service的命令为浏览器native的调用来完成操作。

示例

selenium webdriver



得到对应元素的id,模拟手动搜索hello

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element_by_id("kw").send_keys("hello")
driver.find_element_by_id("su").click()
time.sleep(8)
driver.quit()

结果


selenium IDE

在fireFox中使用selenium IDE录制脚本👇

点击start开始录制、接下来就是我们的操作👇


点击右上角停止录制👇

点击run播放录制👇

导出录制脚本、支持多种语言

录制生成的脚本

# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

class TestHello():
  def setup_method(self, method):
    self.driver = webdriver.Firefox()
    self.vars = 
  
  def teardown_method(self, method):
    self.driver.quit()
  
  def test_hello(self):
    self.driver.get("https://www.baidu.com/")
    self.driver.set_window_size(1118, 695)
    self.driver.find_element(By.ID, "kw").send_keys("hello")
    self.driver.find_element(By.ID, "kw").send_keys(Keys.ENTER)
    self.driver.find_element(By.CSS_SELECTOR, ".c-gap-right-xsmall > .op-dict3-repeat").click()
    self.driver.find_element(By.CSS_SELECTOR, ".op-dict3-repeat-on").click()
    self.driver.close()
  

以上是关于初始Selenium的主要内容,如果未能解决你的问题,请参考以下文章

自动化测试-selenium初始化Driver参考

初始Selenium

初始Selenium

初始Selenium

初始Selenium

selenium+python学习日记--环境初始化