• 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_id("su").clear()

    refresh()-->刷新页面的方法

    p: driver.refresh()

    back()-->从百度新闻后退到百度首页 

    p:driver.back() 

    forward()-->百度首页前进到百度新闻 

    p:driver.forward()

    from selenium.webdriver.common.keys import Keys

    driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')     ---> 快捷键是 ctrl + t ,新开一个浏览器tab

    driver.find_element_by_tag_name('body') .send_keys(Keys.CONTROL + 'a')      -->快捷键是 Ctrl+a,全选当前页面文字

    element = driver.find_element_by_id('kw')  

    element.send_keys("Selenium automation")  

    element.send_keys(Keys.BACKSPACE)   -----》退格键删除Selenium automation这些文字

     

     

    from selenium.webdriver import ActionChains  
    
    from selenium.webdriver.common.keys import Keys 
    
    element = driver.find_element_by_xpath("//*[@id='lg']/img")  
    
    actionChains = ActionChains(driver)  
    actionChains.context_click(element).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform() 
    注意:在火狐浏览器中,上面的这个方法是失效的,这是火狐的一个bug
    

      

    driver.execute_script("window.alert('这是一个alert弹框。');") # 注意这里的分号是英文输入法的分号,不能用中文  

    driver.get_screenshot_as_file("C:\Users\你的账户名\Desktop\baidu.png")  ---》截图并保存

    print driver.current_window_handle # 输出当前窗口句柄  
    handles = driver.window_handles # 获取当前全部窗口句柄集合  
    print handles # 输出句柄集合  
      
    for handle in handles:# 切换窗口  
        if handle != driver.current_window_handle:  
            print 'switch to second window',handle  
            driver.close() # 关闭第一个窗口  
            driver.switch_to.window(handle) #切换到第二个窗口 
    

    driver.switch_to.frame("iframe1") ---》iframe切换

    find_element_by_link_text("地区") .execute_script("return arguments[0].scrollIntoView();",target_elem)   ----->执行js脚本控制浏览器竖向滚动条 ,拖动到元素为“地区"的地方

    maximize_window() --->设置浏览器全屏

    p:driver.maximize_window() 

    driver.get_window_size()--->获取浏览器窗口的大小

    driver.set_window_size(1280,800)   -->设置窗口的分辨率是1280*800 

    .is_selected()-->判断单选或者多选控件是否被选中,返回值是布尔值

    p:driver.find_element_by_xpath("//*[@id='news']").is_selected()  

    属性:

    capabilities['version'] -->浏览器version的值 

    p:driver.capabilities['version']

    current_url--->获取当前页面的URL  

    p:driver.current_url

    title-->获取当前页面的标题显示的字段 

    p:driver.title

    driver.find_element_by_xpath("//*[@id='TANGRAM__PSP_8__error']").text     ---》获取某一个元素的text属性值

    driver.find_element_by_id('su').size  --->获取id为su的元素的大小

    #  this is config file, only store browser type and server URL  
      
    [browserType]  
    #browserName = Firefox  
    browserName = Chrome  
    #browserName = IE  
      
    [testServer]  
    URL = https://www.baidu.com  
    #URL = http://www.google.com  
    config.ini
    def get_value(self):  
            root_dir = os.path.dirname(os.path.abspath('.')) # 获取项目根目录的相对路径  
            print root_dir  
      
            config = ConfigParser.ConfigParser()  
            file_path = os.path.dirname(os.path.abspath('.')) + '/config/config.ini'  
            config.read(file_path)  
      
            browser = config.get("browserType", "browserName")  
            url = config.get("testServer", "URL")  
      
            return(browser,url)  # 返回的是一个元组 
    读取配置文件内容
     def get_system_time(self):  
            print (time.time()) # time.time()获取的是从1970年到现在的间隔,单位是秒  
            print (time.localtime())  
            new_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) # 格式化时间,按照 2017-04-15 13:46:32的格式打印出来  
            print (new_time)    
    系统时间和格式化时间显示
    def get_search_result(self):  
            driver = webdriver.Chrome()  
            driver.maximize_window()  
            driver.implicitly_wait(8)  
      
            driver.get('https://www.baidu.com')  
            driver.find_element_by_id('kw').send_keys('selenium')  
            time.sleep(1)  
            search_result_string = driver.find_element_by_xpath("//*/div[@class='nums']").text  
            print (search_result_string)  
      
            new_string = search_result_string.split('')[1] # 第一次切割得到 xxxx个,[1]代表切割右边部分  
            print (new_string)  
            last_result = new_string.split('')[0]  # 第二次切割,得到我们想要的数字 [0]代表切割参照参数的左边部分  
            print (last_result)    
    Python中字符串切割操作
  • 相关阅读:
    基于C++CJAVA的python入门
    雁栖湖健身计划
    显存的一些知识
    Cuda_bank-conflict
    翻译文章进展
    一些CV界的好资源
    how processor caches work
    LINQ-进阶的扩展方法
    LINQ-基础
    CTFHUB-技能树 基础知识 ctf练习平台
  • 原文地址:https://www.cnblogs.com/angelgril/p/7086718.html
Copyright © 2020-2023  润新知