Selenium中WebDriver API的使用

Posted 魔女小溪,冲!冲!冲!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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你的账户名Desktopaidu.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中字符串切割操作

 

以上是关于Selenium中WebDriver API的使用的主要内容,如果未能解决你的问题,请参考以下文章

selenium webdriver API是像JAVA API一样的吗?

Selenium WebDriver(Python)API

Selenium Webdriver概述

Python + Selenium WebDriver Api 知识回顾

python+selenium自动测试之WebDriver的常用API(基础篇一)

java+selenium3-常用的WebDriver API