Selenium的api

来源:互联网 发布:微博十大网络主播投票 编辑:程序博客网 时间:2024/05/22 03:52

1.浏览器操作

from selenium import webdriver #调用webdriver模块

driver=webdriver.Firefox()     #实例化火狐浏览器类

driver.get("http://www.baidu.com") #浏览器输入百度网址

driver.quit()             #关闭并退出浏览器

driver.close()           #退出当前窗口

driver.implicitly_wait(3)  #智能等待(上一步完全完成后,自动结束等待,参数为最大等待时间)

driver.maximize_window()   #浏览器最大化

driver.set_window_size(400,480) #设置浏览器尺寸(默认为当前句柄)

driver.back()                #返回到前一个网页

driver.forward()             #前进一个网页

2.元素定位

driver.find_element_by_id()                 #通过id定位元素

driver.find_element_by_name()                #通过name定位元素

driver.find_element_by_class_name()          #通过class_name定位元素

driver.find_element_by_xpath()  #通过路径(可以为绝对路径或者相对路径)定位元素

driver.find_element_by_link_text()         #通过文字链接定位元素

driver.find_element_by_partial_link_text()  #通过部分文字链接定位元素

driver.find_element_by_tag_name()           #通过标签定位元素

driver.title         #获取当前网页的标题

driver.find_elements_by_xx("")    #获取一组元素

 

 

2.用户行为

driver.find_element_by_id("").clear()   #清除输入框的默认内容

driver.find_element_by_id("").click()   #点击操作

driver.find_element_by_id("").text     #获取元素的文本信息

driver.find_element_by_id("").size     #获取元素的宽高

driver.find_element_by_id("").get_attribute('name') #获取元素的name属性

driver.find_element_by_id("").is_displayed()   #返回True或False 返回元素的结果是否可见

                           

3.鼠标和键盘事件

#引入ActionChains 类

from selenium.webdriver.common.action_chains import ActionChains

#定位到要右击的元素

right =driver.find_element_by_xpath("xx")

#对定位到的元素执行鼠标右键操作

ActionChains(driver).context_click(right).perform()   perform()为执行操作

ActionChains 类鼠标操作的常用方法:

context_click() 右击

double_click() 双击

drag_and_drop() 拖动

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

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

context_click() 右键点击一个元素。

                   double_click(on_element)   双击一个元素

                   drag_and_drop(source,target)

在源元素上按下鼠标左键,然后移动到目标元素上释放。

source: 鼠标按下的源元素。

target: 鼠标释放的目标元素。

                   move_to_element()    模拟鼠标移动到一个元素上。

        

在使用键盘按键方法前需要先导入keys 类包。

from selenium.webdriver.common.keys import Keys

下面经常使用到的键盘操作:

send_keys(Keys.BACK_SPACE) 删除键(BackSpace)

send_keys(Keys.SPACE) 空格键(Space)

send_keys(Keys.TAB) 制表键(Tab)

send_keys(Keys.ESCAPE) 回退键(Esc)

send_keys(Keys.ENTER) 回车键(Enter)

send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)

send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)

send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)

send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)

 

4.now_url =driver.current_url    #获得前面URL

5.设置等待事件

WebDriverWait()。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。

详细格式如下:

WebDriverWait(driver,timeout, poll_frequency=0.5, ignored_exceptions=None)

driver - WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)

timeout - 最长超时时间,默认以秒为单位

poll_frequency - 休眠时间的间隔(步长)时间,默认为0.5 秒

ignored_exceptions- 超时后的异常信息,默认情况下抛NoSuchElementException 异常

#WebDriverWait()方法使用

element=WebDriverWait(driver,10).until(lambda drivdriver.find_element_by_id("kw"))

element.send_keys("selenium")

WebDriverWai()一般由unit()或until_not()方法配合使用,下面是unit()和until_not()方法的说明。

until(method, message=’ ’)

调用该方法提供的驱动程序作为一个参数,直到返回值不为False。

until_not(method, message=’ ’)

调用该方法提供的驱动程序作为一个参数,直到返回值为False

1.      多窗口处理

nowhandle=driver.current_window_handle    #获得当前窗口

allhandles=driver.window_handles

forhandle in allhandles:    #循环判断窗口是否为当前窗口

if handle!= nowhandle:

driver.switch_to_window(handle)

2.      alert框处理

#接受警告信息

driver.switch_to_alert().dismiss() #点击取消

driver.switch_to_alert().accept()   #点击确定

driver.switch_to_alert().text   #得到文本信息

driver.switch_to_alert().send_keys(””)   #像alert框发送信息

3.      调用js

Driver.execute_script(“document.getElementById(“元素”).setAttribute(‘属性’,’属性值’)”)

调用js修改元素的属性值
原创粉丝点击