在webdriver脚本代码中执行javascript代码,来实现对页面元素的操作。此种方式主要用于解决在某些情况下,页面元素的.click()方法无法生效等问题。
#!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : [email protected] """ #使用JavaScript操作页面元素 from selenium import webdriver from selenium.common.exceptions import WebDriverException import unittest import traceback#导入堆栈类 import time class TestDemo(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() def test_executeScript(self): url = ‘http://www.baidu.com‘ self.driver.get(url) searchInputBoxJS = ‘document.getElementById("kw").value="光荣之路";‘
#构造JavaScript查找百度首页的搜索输入框的代码字符串 searchButtonJS = ‘document.getElementById("su").click()‘
#构造JavaScript查找百度首页的搜索按钮的代码字符串 try: self.driver.execute_script(searchInputBoxJS)
#通过JavaScript代码在百度首页搜索输入框中输入“光荣之路” time.sleep(2) self.driver.execute_script(searchButtonJS)
#通过JavaScript代码单击百度首页上的搜索按钮 time.sleep(2) self.assertTrue(‘百度百科‘ in self.driver.page_source) except WebDriverException as e: print("在页面中没有找到要操作的页面元素" ,traceback.print_exc())#打印异常的堆栈信息 except AssertionError as e: print(‘页面不存在断言的关键字串‘) except Exception as e: print(traceback.print_exc())#发生其他异常时,打印异常堆栈信息 def tearDown(self): self.driver.quit() if __name__ == ‘__main__‘: unittest.main()