51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2019|回复: 1
打印 上一主题 下一主题

WebDriver高级应用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-22 15:53:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1、使用JavaScript操作页面元素:

目的:在webdriver脚本代码中执行JavaScript代码,来实现对页面元素的操作,主要用于解决在某些情况下页面原色的Click方法无法生效问题;

  1. # coding = utf-8
  2. from selenium import webdriver
  3. from selenium.common.exceptions import WebDriverException
  4. import unittest
  5. import traceback
  6. import time
  7. class TestDemo(unittest.TestCase):
  8.     def setUp(self):
  9.         self.driver = webdriver.Chrome(executable_path="D:\\software\\chromedriver")
  10.     def test_executeScript(self):
  11.         self.driver.get("http://www.baidu.com")
  12.         # 构造JavaScript查找百度首页的搜搜输入框的代码字符串
  13.         searchInputBoxJS = "document.getElementById('kw').value='光荣之路'"
  14.         searchButtonBoxJS = "document.getElementById('su').click()"
  15.         try:
  16.             self.driver.execute_script(searchInputBoxJS)
  17.             time.sleep(2)
  18.             self.driver.execute_script(searchButtonBoxJS)
  19.             time.sleep(2)
  20.             self.assertTrue(u"百度百科" in self.driver.page_source)
  21.         except WebDriverException:
  22.             print(u"在页面中没有找到要操作的页面元素", traceback.print_exc())
  23.         except AssertionError:
  24.             print(u"页面不存在关键子串")
  25.         except Exception:
  26.             print(traceback.print_exc())

  27.         def tearDown(self):
  28.             self.driver.quit()
  29. if __name__ == '__main__':
  30.     unittest.main()
复制代码

2、操作Web页面滚动条:

目的:滑动页面的滚动条到页面最下面、滑动页面滚动条到页面某个元素、滑动页面的滚动条向下移动某个数量的像素;

  1. # coding = utf-8
  2. from selenium import webdriver
  3. import unittest
  4. import traceback
  5. import time

  6. class TestDemo(unittest.TestCase):
  7.     def setUp(self):
  8.         self.driver = webdriver.Chrome(executable_path="D:\\software\\chromedriver")

  9.     def test_scroll(self):
  10.         try:
  11.             self.driver.get("http:www.seleniumhq.org/")
  12.             # 使用JavaScript的scrollTo函数和document.body.scrollHeight参数将页面的滚动条滑动到页面的最下方
  13.             self.driver.execute_script("window.scrollTo(100,document.body.scrollHeight);")
  14.             time.sleep(3)

  15.             # 使用JavaScript的scrollIntoView函数将被遮挡的元素滚动到屏幕上,scrollIntoView(true)表示将元素滚动到屏幕中间,
  16.             # false表示将元素滚动到屏幕底部

  17.             self.driver.execute_script("document.getElementById('choice').scrollIntoView(true);")
  18.             time.sleep(3)


  19.             # 使用JavaScript的scrollBy方法使用0和400横纵坐标参数
  20.             self.driver.execute_script("window.scrollBy(0,400);")
  21.             time.sleep(3)

  22.         except Exception:
  23.             print(traceback.print_exc())

  24.     def tearDown(self):
  25.         self.driver.quit()

  26. if __name__ == '__main__':
  27.     unittest.main()
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 20:36 , Processed in 0.060459 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表