Web自动化 - webdriver对浏览器基础操作

 Webdriver可以这样理解:客户端脚本(java, python, ruby,c#)不能直接与浏览器通信,但可以用WebService作为通讯翻译器,WebService把客户端代码翻译成浏览器可以识别的代码(如js)。

  1. 客户端(也就是测试脚本)创建1个session,在该session中通过http请求向WebService发送restful的请求。
  2. WebService翻译成浏览器懂得脚本传给浏览器。
  3. 浏览器把执行的结果返回给WebService。
  4. WebService把返回的结果做了一些封装(一般都是json格式)。
  5. 然后返回给client,根据返回值就能判断对浏览器的操作是不是执行成功。

总结下来核心就是Webdriver是按照server–client的架构设计,server端就是remote server,可以是任意的浏览器:脚本启动浏览器后,该浏览器就是remote server,它的职责就是等待client发送请求并做出相应; client端简单说来就是我们的测试代码:测试代码表示的是执行的动作行为,比如启动浏览器,跳转到指定的url等,这些操作本质都是以http请求的方式发送给被server端(也就是被测浏览器),server接受请求,并执行相应操作,并在response中返回执行状态、返回值等信息。

原详细解释地址:测开系列Selenium Webdriver Python(20)--Webdriver运行原理 - 知乎

from selenium import webdriver

# 启动chrome
driver = webdriver.Chrome()

# 访问网站百度
driver.get("https://www.baidu.com")
# 窗口最大化
driver.maximize_window()
# 去某宝浪一圈,方便测试回到上一页
driver.get("https://www.taobao.com")
# 回到上一页,等同点击左箭头
driver.back()
# 去下一页,等同点击右箭头.forward就是向前的意思
driver.forward()
# 刷新当前页面,等同点击刷新按钮
driver.refresh()
# 获取当前窗口的标题
print('获取当前窗口的标题',driver.title)
# 获取当前窗口的网址
print('获取当前窗口的网址',driver.current_url)
# 获取当前窗口的句柄,就是当前窗口的id
print('获取当前窗口的句柄',driver.current_window_handle)

# 结束会话
# driver.quit()
获取当前窗口的标题 淘宝网 - 淘!我喜欢
获取当前窗口的网址 https://www.taobao.com/
获取当前窗口的句柄 CDwindow-00BC7B081DBF69F801B09633FCC83F66

# 设置无头模式
    chrome_options = Options()
    chrome_options.add_argument('--headless')  # 浏览器不提供可视化页面. linux下使用
    driver = webdriver.Chrome(chrome_options=chrome_options)

    driver.get(getUrl('moniWPSTemplateCenterUrl'))
    driver.maximize_window()

from selenium import webdriver

# 启动chrome
driver = webdriver.Chrome()

# 访问网站百度
driver.get("https://www.baidu.com")
# 窗口最大化
driver.maximize_window()
# 去某宝浪一圈,方便测试回到上一页
driver.get("https://www.taobao.com")
# 回到上一页,等同点击左箭头
driver.back()
# 去下一页,等同点击右箭头.forward就是向前的意思
driver.forward()
# 刷新当前页面,等同点击刷新按钮
driver.refresh()
# 获取当前窗口的标题
print('获取当前窗口的标题',driver.title)
# 获取当前窗口的网址
print('获取当前窗口的网址',driver.current_url)
# 获取当前窗口的句柄,就是当前窗口的id
print('获取当前窗口的句柄',driver.current_window_handle)

# 结束会话
# driver.quit()
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秦朝胖子得加钱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值