webdriver高级应用-使用JavaScript操作页面元素

Webdriver搞不定的,需要用js,无需引入有关js的包就可用
在WebDriver脚本代码中执行JavaScript代码,来实现对页面元素的操作。此方法主要用于解决在某些情况下,页面元素的.click()方法无法生效等问题。
#encoding=utf-8
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
import unittest
import traceback
import time

class TestDemo(unittest.TestCase):

    def setUp(self):
        # 启动Chrome浏览器
        #self.driver = webdriver.Chrome(executable_path = "c:\\chromedriver")
        self.driver = webdriver.Ie(executable_path = "e:\\IEDriverServer")

    def test_executeScript(self):
        url = "http://www.sogou.com"
        # 访问baidu首页
        self.driver.get(url)
        # 构造JavaScript查找百度首页的搜索输入框的代码字符串
        searchInputBoxJS = "document.getElementById(‘query‘).value=‘光荣之路‘;"
        # 构造JavaScript查找百度首页的搜索按钮的代码字符串
        searchButtonJS = "document.getElementById(‘stb‘).click()"
        try:
            # 通过JavaScript代码在百度首页搜索输入框中输入“光荣之路”
            self.driver.execute_script(searchInputBoxJS)
            time.sleep(2)
            # 通过JavaScript代码点击百度首页上的搜索按钮
            self.driver.execute_script(searchButtonJS)
            time.sleep(2)
            self.assertTrue(u"光荣之路" in self.driver.page_source)
        except WebDriverException, e:
            # 当定位失败时,会抛出WebDriverException异常
            print u"在页面中没有找到要操作的页面元素 ",traceback.print_exc()
        except AssertionError, e:
            print u"页面不存在断言的关键字串"
        except Exception, e:
            # 发生其他异常时,打印异常堆栈信息
            print traceback.print_exc()

    def tearDown(self):
        # 退出IE浏览器
        self.driver.quit()

if __name__ == ‘__main__‘:
    unittest.main()

解释:

>>> try:

...     1/0

... except:

...     print "error"

...

error

>>> import traceback

>>> try:

...     1/0

... except:

...     traceback.print_exc()

...

Traceback (most recent call last):

File "<stdin>", line 2, in <module>

ZeroDivisionError: integer division or modulo by zero

#Traceback可以打印出出错的具体错误信息和位置

原文地址:https://www.cnblogs.com/qingqing-919/p/8715777.html

时间: 2024-10-11 19:13:28

webdriver高级应用-使用JavaScript操作页面元素的相关文章

使用JavaScript操作页面元素

在webdriver脚本代码中执行JavaScript代码,来实现对页面元素的操作.此种方式主要用于解决在某些情况下,页面元素的.click()方法无法生效等问题. #!usr/bin/env python #-*- coding:utf-8 -*- """ @author: sleeping_cat @Contact : [email protected] """ #使用JavaScript操作页面元素 from selenium import

常用JavaScript操作页面元素的方法

1.取得dropdownlist的选中值 var ddl =document.getElementById('<%=ddlusers.ClientID%>'); var index = ddl.selectedIndex; var Value = ddl.options[index].value; var Text = ddl.options[index].text; 2.给textbox文本框赋值 document.getElementById('<%=txtzfry.ClientID

selenium webdriver学习(八)---操作页面元素等待时间

一.代码实现

WebDriver操作页面元素之单选按钮

在使用webdriver操作页面元素的时候经常会遇到一些单选按钮的情况,例如:注册时性别选择.单选按钮族中所有按钮共享同一个名称,所以浏览器知道将按钮组合在一起,通过选中其中一个按钮,其他按钮自动变为未选中状态. 示例代码: package com.seleniumdemo.webdriver; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.T

JavaScript 实现页面元素(ul-li)的简单排序

JavaScript 实现页面元素(ul-li)的简单排序 html页面: <input type="button" value="show" onclick="show()" /> <ul id="ul1"> <li>4</li> <li>3</li> <li>2</li> <li>1</li> </

操作页面元素等待时间

WebDriver在操作页面元素等待时间,提供两种等待方式:一个为显示等待,另一个为隐式等待 区别:1)显示等待:明确告诉webDriver按照特定的条件进行等待,条件未达到,,就一直等待.这在等待某个元素需要非常长的时间时非常有效 2) 隐式等待:告诉webDriver一个最大的超时时间,如果等待条件在超时以前就满足,就立刻执行后续操作而无须等待超时达到 package test; import java.util.concurrent.TimeUnit; import org.openqa.

用javaScript获取页面元素值

用JavaScript获取页面元素常见的三种方法:                                                           getElementById()                                                           getElementsByName()                                                           getElementsBy

jQuery操作页面元素之包装元素

一:包装结点:指用指定HTML结构包装现有元素,被包装元素成为结构的子结点.就好像python中的装饰器. 1:wrap(): wrap方法用指定HTML结构包装结点,参数可以是HTML字符串.选择器或者jQuery对象.匹配多个结点时,分别包装各个结点. 2:wrapAll(): wrapAll方法将所有选中的结点包装在一个HTML结构中,参数可以是HTML字符串.选择器或者jQuery对象. 1 <!DOCTYPE html> 2 <html> 3 4 <head>

[转载]用Javascript获取页面元素的位置

原文地址:http://www.ruanyifeng.com/blog/2009/09/find_element_s_position_using_javascript.html 制作网页的过程中,你有时候需要知道某个元素在网页上的确切位置. 下面的教程总结了Javascript在网页定位方面的相关知识. 一.网页的大小和浏览器窗口的大小 首先,要明确两个基本概念. 一张网页的全部面积,就是它的大小.通常情况下,网页的大小由内容和CSS样式表决定. 浏览器窗口的大小,则是指在浏览器窗口中看到的那