码迷,mamicode.com
首页 > Windows程序 > 详细

Selenium Webdriver API(6)

时间:2019-03-13 18:22:47      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:表示   false   chain   element   cep   pre   tab   win32   lease   

Selenium Webdriver API(6)

33、右键 context_click 在某个对象上点击右键
#encoding=utf-8
from selenium import webdriver
import unittest
import time
from selenium.webdriver import ActionChains
import win32con
import win32clipboard as w

#设置剪切板
def setText(aString):
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_UNICODETEXT,aString)
    w.CloseClipboard()

class visitSogouByIE(unittest.TestCase):
    def setUp(self):
        #启动浏览器
        self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")
    def test_rightClick(self):
        url = "http://www.sogou.com"
        self.driver.get(url)
        #找到搜索输入框
        searchBox = self.driver.find_element_by_id("query")
        #将焦点切换到搜索框
        searchBox.click()
        time.sleep(2)
        #在搜索输入框中执行一个鼠标右键点击操作
        ActionChains(self.driver).context_click(searchBox).perform()
        #将某个数据设置到剪切板 “魔兽世界”,相当于执行了复制操作
        setText(u"魔兽世界")
        #发送一个粘贴命令,字符p代替粘贴操作
        ActionChains(self.driver).send_keys("p").perform()
        #点击搜索按钮
        self.driver.find_element_by_id("stb").click()

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

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

34、左键长按、释放 click_and_hold release
#encoding=utf-8
import time
import unittest
from selenium import webdriver
from selenium.webdriver import ActionChains

class visitLocalWebByIE(unittest.TestCase):
    def setUp(self):
        #启动浏览器
        self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")
    def test_leftClickHoldAndRelease(self):
        url = "http://127.0.0.1:8080/test_mouse.html"
        #访问自定义网页
        self.driver.get(url)
        div = self.driver.find_element_by_id("div1")
        #在id属性值为div1的元素上执行按下鼠标左键并保持
        ActionChains(self.driver).click_and_hold(div).perform()
        time.sleep(2)
        #在id属性值为div1的元素上释放被一直按下的鼠标左键
        ActionChains(self.driver).release(div).perform()
        time.sleep(2)
        ActionChains(self.driver).click_and_hold(div).perform()
        time.sleep(2)
        ActionChains(self.driver).release(div).perform()
    def tearDown(self):
        self.driver.quit()

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

35、鼠标悬停 move_to_element
#encoding=utf-8
import time
import unittest
from selenium import webdriver
from selenium.webdriver import ActionChains

class visitLocalWebByIe(unittest.TestCase):
    def setUp(self):
        #启动浏览器
        self.driver = webdriver.Ie(executable_path = "D:\\IEDriverServer")

    def test_mouseHover(self):
        url = "http://127.0.0.1:8080/test_mouse_hover.html"
        #访问自定义网页
        self.driver.get(url)
        #找到页面上的第一个链接元素
        link1 = self.driver.find_element_by_link_text(u"鼠标指过来1")
        #找到页面上的第二个链接元素
        link2 = self.driver.find_element_by_link_text(u"鼠标指过来2")
        #找到页面上的p元素
        p = self.driver.find_element_by_xpath("//p")
        print link1.text,link2.text
        #将鼠标悬浮在第一个链接元素上
        ActionChains(self.driver).move_to_element(link1).perform()
        time.sleep(2)
        #将鼠标从第一个链接元素上移动到p元素
        ActionChains(self.driver).move_to_element(p).perform()
        time.sleep(2)
        #将鼠标悬浮到第二个链接元素上
        ActionChains(self.driver).move_to_element(link2).perform()
        time.sleep(2)
        #将鼠标从第二个链接元素上移到p元素
        ActionChains(self.driver).move_to_element(p).perform()
        time.sleep(2)

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

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

36、判断元素是否在页面中 find_element
#encoding=utf-8
import time
import unittest
from selenium import webdriver

class visitSoGouByIe(unittest.TestCase):

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

    def isElementPresent(self,by,value):
        #从selemium.common.exceptions模块导入NoSuchElementExcetion异常类
        from selenium.common.exceptions import NoSuchElementException
        try:
            element = self.driver.find_element(by = by,value = value) #使用某种定位方式及值来定位元素
        except NoSuchElementException,e:
            #打印异常信息
            print e
            #发生NoSuchElementEception异常,说明页面中未找到该元素,则返回False
            return False
        else:
            # 没有发生异常,表示在页面中找到了元素,返回True
            return True

    def test_isElementPresent(self):
        url = "http://www.sogou.com"
        #访问搜狗
        self.driver.get(url)
        #判断页面元素id属性值为"query"的页面元素是否存在
        res = self.isElementPresent("id","query")
        if res is True:
            print u"所查找的元素存在于页面上!"
        else:
            print u"页面中未找到所需要的元素!"

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

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

 

Selenium Webdriver API(6)

标签:表示   false   chain   element   cep   pre   tab   win32   lease   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!