• Selenium API


    导入模块:
    from selenium import webdriver
    
    from selenium.common.exceptions import NoSuchElementException

    选择浏览器:driver = webdriver.Firefox()

    打开url:driver.get("http://www.baidu.com")

    等待:driver.implicitly_wait(30)

            driver.set_page_load_timeout(30)

    driver.set_script_timeout(30)

    关闭浏览器:driver.quit()/driver.close()

    添加休眠:time.sleep()

    智能等待:implicitly_wait()

    打印title:driver.title

    打印URL:print "now access %s"%(url)

            get(url)

    浏览器最大化:maximize_window()

    设置浏览器长宽:set_window_size(x,y)

    前进/后退:driver.forward()/driver.back()

    刷新:driver.refresh()

    返回当前页面标题:driver.title

    返回当前页面url:driver.current_url

    返回当前浏览器的所有窗口:driver.window_handles

    返回当前浏览器的窗口句柄:driver.current_window_handle

    选择窗口:driver.switch_to_window(“window_name”)

    对话框操作:driver.switch_to_alert() #选择窗口对象

    driver.switch_to_frame()  #多层框架定位。  

        accept()  #点击确认

        dismiss() #点击取消

        click()   #点击对象   

        context_click()  #右击  

        double_click()   #双击

        drag_and_drop()   #拖动  

        clear()   #清除对象内容

        submit()  #提交表单

        text       #获取文本值

        send_keys(“key”)   #输入值

        get_attribute() #获得属性值

    定位元素(单个):driver.find_element(by=”id”,value=None)

    Id定位: driver.find_element_by_id(“id_name”)

    Name定位:driver.find_element_by_name(“name”)

    Css定位: driver.find_element_by_css_selector(“#foo”)

    Xpath定位:driver.find_element_by_xpath(“//select[@id=’nr’]/option[2]”)

    Link定位:driver.find_element_by_link_text(u”链接”)

    Tag定位: driver.find_element_by_tag_name(“foo”)

    截取当前页面: driver.get_screenshot_as_file('/Screenshots/foo.png')

    HTMLTestRunner测试结果保存:

    # -*- coding: UTF-8 -*- 
    
    from selenium import webdriver
    
    # from selenium webdriver.common.by import By
    
    # from selenium webdriver.common.keys import Keys
    
    # from selenium webdriver.common.support.ui import Select
    
    from selenium.common.exceptions import NoSuchElementException
    
    import HTMLTestRunner
    
    import unittest,time,re
    
    from fileinput import filename
    
    from lxml.html._diffcommand import description
    
    class Baidu(unittest.TestCase):
    
        def setUp(self):
    
            self.driver=webdriver.Firefox()
    
            self.driver.implicitly_wait(30)
    
            self.base_url="http://www.baidu.com/"
    
            self.verificationErrors=[]
    
            self.accept_next_alert=True
    
        #test_baidu_search
    
        def test_baidu_search(self):
    
            driver=self.driver
    
            driver.get(self.base_url+"/")
    
            driver.find_element_by_id("kw").send_keys("selenium webdriver")
    
            driver.find_element_by_id("su").click()
    
            time.sleep(2)
    
            driver.close()
    
        #test_baidu_set
    
        def test_baidu_set(self):
    
            driver=self.driver
    
            #get(self.base_url
    
            driver.get(self.base_url+"/gaoji/preferences.html")
    
            #value='100
    
            m=driver.find_element_by_name("NR")
    
            m.find_element_by_xpath("//option[@value='100']").click()
    
            time.sleep(2)
    
            #accept
    
            driver.find_element_by_xpath("//input[@value='保存设置']").click()
    
            time.sleep(2)
    
            driver.switch_to_alert().accept()
    
        def tearDown(self):
    
            self.driver.quit()
    
            self.assertEqual([], self.verificationErrors)
    
    if __name__=="__main__":
    
        testunit=unittest.TestSuite()
    
        testunit.addTest(Baidu("test_baidu_search"))
    
        testunit.addTest(Baidu("test_baidu_set"))  
    
        filename='D:
    esult.html'
    
        fp=file(r'D:
    esult.html','wb')
    
        runner=HTMLTestRunner.HTMLTestRunner(
    
        stream=fp,
    
        title='Test_baidu',
    
        description='testbaiu')
    
        runner.run(testunit)    

    IOError: [Errno 22] invalid mode ('r') or filename:
    这种错误的出现是在使用built-in函数file()或者open()的时候。或者是因为文件的打开模式不对,或者是文件名有问题。前者的话只需要注意文件是否可读或者可写就可以了。后者则是与文件路径相关的问题,需要在文件名前加r或者R转义,如:file(r"e:Test.txt",'r').或者将反斜杠变成两个,如file("e:\Test.txt",'r').

  • 相关阅读:
    System.Threading.Timer 无规律执行次数的问题
    C#通过URL获取顶级域名的方法
    C#变量声明添加?与@的用法
    基于system.diagnostics Trace的日志输出
    SSB(SQLservice Service Broker) 入门实例
    .NET 入门测试题二:流程控制
    .NET 入门测试题三:变量的更多内容
    .NET 入门测试题四:函数
    .NET 入门测试题一:变量与表达式
    WinCE切换GPRS
  • 原文地址:https://www.cnblogs.com/linkxu1989/p/6633113.html
Copyright © 2020-2023  润新知