Selenium Webdriver API(4)

27、操作复选框 checkBox
#encoding=utf-8
import unittest
import time
from selenium import webdriver

class VisitLocalWebByIE(unittest.TestCase):
    def setUp(self):
        #启动浏览器
        self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")
    def test_checkBox(self):
        url = "http://127.0.0.1:8080/test_checkbox.html"
        #访问自定义网页
        self.driver.get(url)
        #使用xpath定位获取value属性为“berry”的input元素对象 ,也就是“草莓”选项
        berryCheckBox = self.driver.find_element_by_xpath("//input[@value=‘berry‘]")
        #单击选择“草莓”选项
        berryCheckBox.click()
        #断言“草莓”复选框被成功选中
        self.assertTrue(berryCheckBox.is_selected(),u"草莓复选框未被选中")
        if berryCheckBox.is_selected():
            #如果“草莓”复选框被成功选中,再次单击取消选中
            berryCheckBox.click()
            #断言“草莓”复选框处于未选中状态
            self.assertFalse(berryCheckBox.is_selected())
        #查找所有name属性值为"fruit"和复选框元素对象,并存放在checkBoxList列表中
        checkBoxList = self.driver.find_elements_by_xpath("//input[@name=‘fruit‘]")
        #遍历checkBoxList列表中所有的复选框元素,让全部复选框处于被选中状态
        for box in checkBoxList:
            if not box.is_selected():
                box.click()
        time.sleep(4)
    def tearDown(self):
        self.driver.quit()

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

28、断言页面源码中是否有某关键字 assert
#encoding=utf-8
import unittest
import time
from selenium import webdriver

class VisitBaiduByIE(unittest.TestCase):
    def setUp(self):
        #启动浏览器
        self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")
    def test_assertKeyWord(self):
        url = "http://www.baidu.com"
        #访问百度首页
        self.driver.get(url)
        self.driver.find_element_by_id("kw").send_keys(u"魔兽世界")
        self.driver.find_element_by_id("su").click()
        time.sleep(4)
        #通过断言页面是否存在某些关键字来确定页面按照预期加载
        assert u"魔兽" in self.driver.page_source,u"页面源码中不存在该关键字"
    def tearDown(self):
        self.driver.quit()

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

29、截屏 get_screenshot_as_file
#encoding=utf-8
import unittest
import time
from selenium import webdriver

class VisitSogouByIE(unittest.TestCase):
    def setUp(self):
        #启动浏览器
        self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")
    def test_captureScreenInCurrentWindow(self):
        url = "http://www.sogou.com"
        #访问搜狗首页
        self.driver.get(url)
        try:
            """
            调用get_screenshot_as_file(filename)方法,对浏览器当前打开页面
            进行截图,并保存为screenPicture.png文件
            """
            result = self.driver.get_screenshot_as_file("D:\\test\\screenPicture.png")
            print result
        except IOError,e:
            print e
    def tearDown(self):
        self.driver.quit()

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

练习:截取三个网站的首页,并以日期为文件夹名,时间为文件名保存
#encoding=utf-8
import time
import os
from selenium import webdriver
import unittest

class ScreenShot(unittest.TestCase):
    def setUp(self):
        #启动浏览器
        self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")
    def test_getScreenShot(self):
        urls = ["http://www.baidu.com","http://www.sogou.com","https://www.mi.com"]
        file_path = "D:\\test\\"+time.strftime("%Y%m%d",time.localtime())+"\\"
        os.mkdir(file_path)
        for url in urls:
            self.driver.get(url)
            file_name = time.strftime("%H%M%S",time.localtime())
            try:
                self.driver.get_screenshot_as_file(file_path+file_name+".png")
            except Exception,e:
                print e
            time.sleep(2)
    def tearDown(self):
        self.driver.quit()

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

30、拖拽 drag_and_drop
#encoding=utf-8
import unittest
import time
from selenium import webdriver

class VisitLocalWebByIE(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")
    def test_drag(self):
        url = "http://jqueryui.com/resources/demos/draggable/scroll.html"
        self.driver.get(url)
        #获取页面上第一个能拖拽的页面元素
        initialPosition = self.driver.find_element_by_id("draggable")
        #获取页面上第二能拖拽的页面元素
        targetPosition = self.driver.find_element_by_id("draggable2")
        #获取页面上第三个能拖拽的页面元素
        dragElement = self.driver.find_element_by_id("draggable3")
        #导入提供拖拽元素方法的模块ActionChains
        from selenium.webdriver import ActionChains
        """
        创建一个新的ActionChains,将webdriver 实例对象driver作为参数值传入,
         然后通过webdriver实例执行用户动作
        """
        action_chains = ActionChains(self.driver)
        #将页面上第一个能被拖拽的元素拖拽到第二个元素位置
        action_chains.drag_and_drop(initialPosition,targetPosition).perform()
        #将页面上第三个能被拖拽的元素,向右下拖拽10个像素,共手动5次
        for i in range(5):
            action_chains.drag_and_drop_by_offset(dragElement,10,10).perform()
            time.sleep(2)
    def tearDown(self):
        self.driver.quit()

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

原文地址:https://www.cnblogs.com/test-chen/p/10444120.html

时间: 2024-10-25 21:25:06

Selenium Webdriver API(4)的相关文章

Selenium Webdriver API(2)

15.获取元素基本信息 #启动IE浏览器driver = webdriver.Ie(executable_path="IEDriverServer")#打开搜狗driver.get("http://www.sogou.com")#获取"新闻"link = driver.find_element_by_xpath(u"//*[text()='新闻']")#查看link类型type(link) #link为webElement对象

Selenium Webdriver API(6)

33.右键 context_click 在某个对象上点击右键#encoding=utf-8from selenium import webdriverimport unittestimport timefrom selenium.webdriver import ActionChainsimport win32conimport win32clipboard as w #设置剪切板def setText(aString):    w.OpenClipboard()     w.EmptyClip

<译>Selenium Python Bindings 6 - WebDriver API

本章涉及Selenium WebDriver的所有接口. Recommended Import Style 推荐的导入风格如下: from selenium import webdriver 然后,你可以这样访问所有的类: webdriver.Firefox webdriver.FirefoxProfile webdriver.Chrome webdriver.ChromeOptions webdriver.Ie webdriver.Opera webdriver.PhantomJS webdr

[selenium webdriver Java]常用api

1. 获取元素文本 WebElement类的getText()方法返回元素的innerText属性.所以元素里如果有子节点一样也会被返回出来.如下所示 1 public class GetText { 2 @Test 3 public void testGetText(){ 4 //启动driver,打开被测页面 5 System.setProperty("webdriver.chrome.driver", "chromedriver.exe"); 6 WebDri

selenium之WebDriver API

自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告,元素定位在这四个环节中是至关重要的,如果说按学习精力分配的话,元素定位占70%:操作元素10%,获取返回结果10%:断言10%.如果一个页面上的元素不能被定位到,那后面的操作就无法继续了.而WebDriver 属于Selenium体系设计出来操作浏览器的一套API,它支持多种语言,Selenium WebDriver只是python的一个第三方框架,也就是说是一个实现web自动化的第

Selenium中WebDriver API的使用(三)

WebDriver API中常用的方法和属性 方法: clear() --->清除一个文本输入框 p:driver.find_element_by_id("kw").clear() send_keys()  -->来输入字符串 p:driver.find_element_by_id("kw").send_keys("Selenium") click() -->点击页面上支持点击的元素 driver.find_element_by

Selenium WebDriver(Python)API

1.通过示例介绍Selenium-WebDriver 一个简单的入门方法就是这个例子,它在Google上搜索术语"Cheese",然后将结果页面的标题输出到控制台. java csharp pythonfrom selenium import webdriverfrom selenium.common.exceptions import TimeoutExceptionfrom selenium.webdriver.support.ui import WebDriverWait # 可

Selenium2(java)selenium常用API 四

WebElement相关方法 1.点击操作 WebElement button = driver.findElement(By.id("login")); button.click(); 由元素对象调用click()方法:   2.清除操作 WebElement username = driver.findElement(By.id("username_input")); username.clear(); 调用之后,会把输入框的内容全部清空:   3.获得元素属性

Selenium 中文API

1.1   下载selenium2.0的lib包 http://code.google.com/p/selenium/downloads/list 官方UserGuide:http://seleniumhq.org/docs/ 1.2   用webdriver打开一个浏览器 我们常用的浏览器有firefox和IE两种,firefox是selenium支持得比较成熟的浏览器.但是做页面的测试,速度通常很慢,严重影响持续集成的速度,这个时候建议使用HtmlUnit,不过HtmlUnitDirver运