这里写自定义目录标题
参考
搭建测试环境,先下载浏览器对应的 WebDriver
https://blog.csdn.net/hanhanwanghaha/article/details/107658968
代码
#coding:utf-8
# 导包
from selenium import webdriver
import time
# 1.打开浏览器
driver = webdriver.Chrome()
time.sleep(2)
# 2.获取网址(百度)
driver.get("http://www.baidu.com")
# 3.找到输入框,通过id进行元素定位
search = driver.find_element_by_id("kw")
# 4.输入想要搜素的关键词--元素操作
search.send_keys("波吉")
time.sleep(2)
# 找到提交按钮,元素定位
button = driver.find_element_by_id("su")
# 点击提交按钮
button.click()
time.sleep(2) #强行等待了固定的 2 秒时间
# 读取搜素结果的标题
title = driver.title
print(title)
# 断言,验证页面效果,如果不加就会直接关了
assert "hh" in title
# 关闭浏览器
driver.quit()
解读
driver = webdriver.Chrome()
打开浏览器,后台还做了些额外的 WebService 绑定工作
search = driver.find_element_by_id("kw")
使用driver 的 find_element_by_id 方法,通过id定位到了搜索输入框,并将该搜索输入框命
名为 search;
search.send_keys("波吉")
通过send_keys方法向搜索输入框 search 输入了字符串“波吉”
Selenium 2.0 的工作原理
Selenium 2.0,又称 Selenium WebDriver,它利用的原理是:使用浏览器原生的 WebDriver
实现页面操作。
- 当使用 Selenium2.0 启动浏览器 Web Browser 时,后台会同时启动基于 WebDriver Wire 协议的 Web Service 作为 Selenium 的 Remote Server,并将其与浏览器绑定。绑定完成后,Remote Server 就开始监听 Client 端的操作请求。
- 执行测试时,测试用例会作为 Client 端,将需要执行的页面操作请求以 Http Request 的方式发送给 Remote Server。该 HTTP Request 的 body,是以 WebDriver Wire 协议规定的JSON 格式来描述需要浏览器执行的具体操作。
- Remote Server 接收到请求后,会对请求进行解析,并将解析结果发给 WebDriver,由WebDriver 实际执行浏览器的操作。
- WebDriver 可以看做是直接操作浏览器的原生组件(Native Component),所以搭建测试环境时,通常都需要先下载浏览器对应的 WebDriver。