selenium常用方法——基于Python

来源:互联网 发布:淘宝上买的车衣不耐用 编辑:程序博客网 时间:2024/04/19 18:04

好啦~了解了怎样定位页面元素之后,就要学习怎样操作页面元素了。下面梳理了一些比较常用的方法:

一、获取元素属性、状态

driver.find_elemnet_by_id(‘ID’).is_displayed()  元素是否可见

driver.find_elemnet_by_id(‘ID’).is_selected()  元素是否被选中

driver.find_elemnet_by_id(‘ID’).is_enable()   元素是否被灰化

driver.find_elemnet_by_id(‘ID’).text  获取元素文本内容

driver.find_elemnet_by_id(‘ID’).get_attribute(‘属性名’)  获取元素对应属性的属性值

二、操作元素

1、输入框

driver.find_elemnet_by_id(‘ID’).clear()  清空输入框

driver.find_elemnet_by_id(‘ID’).send_keys(‘输入内容’)  输入

2、按钮

driver.find_elemnet_by_id(‘ID’).click()  点击

3、弹出对话框

(1)警告消息框(alert

.text()   获取对话框文本值

.accept()    相当于点击"确认"

.dismiss()    相当于点击"取消"

(2)确认消息框(confirm

.text()   获取对话框文本值

.accept()    相当于点击"确认"

.dismiss()    相当于点击"取消"

(3)提示消息对话框(prompt

.text()   获取对话框文本值

.accept()    相当于点击"确认"

.dismiss()    相当于点击"取消"

.send_keys()   输入

4、表单

.submit()   提交表单

5、下拉选择框

(1)三种选中方式:select_by_index()   通过index选择,index0开始

                   select_by_value()   通过匹配到的标签里的value值选择

                   select_by_visible_text()    通过匹配到的可见字符选择

(2)反选:deselect_by_index()   

           deselect_by_value()  

           deselect_by_visible_text()

           Deselect_all()  

(3)查看所选选项:option   返回这个下拉选择框所有的option

                   all_selected_options   返回所有被选中的选项的option

                   first_selected_option   返回第一个被选中的option

三、鼠标事件(在ActionChains类中):

.context_click() 右击

.double_click() 双击

.drag_and_drop() 拖动

.move_to_element() 鼠标悬停在一个元素上

.click_and_hold() 按下鼠标左键在一个元素上

四、键盘事件和组合快捷键

send_keys(Keys.BACK_SPACE) 删除键

send_keys(Keys.SPACE) 空格键

send_keys(Keys.TAB) 制表键

send_keys(Keys.ESCAPE) 回退键

send_keys(Keys.ENTER)  回车键

组合快捷键:如ctrl+A

send_keys(Keys.CONTROL,’a’)

 

五、操作cookie

get_cookies()  获取所有cookie信息

get_cookie(name)  返回特定namecookie信息

get_cookie(cookie_dict)  添加cookie,必须有namevalue

delete_cookie(name)  删除特定的cookie信息

delete_all_cookies()  删除所有cookie信息

 

六、多窗口切换(解决在新tab页中找不到元素问题)

测试场景:打开百度新闻(页面A),点击热点新闻中第一个新闻链接(一般是国家领导人的新闻),会在第二个窗口打开这个新闻的具体详情页(页面B),测试需要去判断你点击这个这个新闻,在打开的详情页是否正确。

 

news_link = driver.find_element_by_xpath("//*[@id='pane-news']/div/ul/li[1]/strong/a")  page1_title_string = news_link.text #得到页面A新闻标题  news_link.click() # 点击新闻链接  time.sleep(1)  handles = driver.window_handles    for handle in handles:# 切换窗口      if handle != driver.current_window_handle:          print 'switch to second window',handle          driver.close() # 关闭第一个窗口          driver.switch_to.window(handle) #切换到第二个窗口          page2_title_string = driver.find_element_by_xpath("//*[@id='yc_con_txt']/p[1]").text 

原创粉丝点击