selenium操做頁面元素基本方法

1.打開頁面
#第一步導入webdriver模塊
from selenium import webdriverhtml

#第二步打開瀏覽器
driver = webdriver.Firefox()  E:\Python2.7\Lib\site-packages\selenium\webdriver\firefox\webdriver.pyweb

#第三步打開想要進入的頁面
driver.get('http://oms01sz.itc.cmbchina.cn/login.html')瀏覽器

2.設置休眠時間
import time
time.sleep(2)框架

3.頁面刷新
driver.refresh()  #至關於F5  E:\Python2.7\Lib\site-packages\selenium\webdriver\remote\webdriver.py工具

4.頁面切換
切到上一頁面
driver.back()學習

切到下一頁面
driver.forward()  #至關於瀏覽器左上角的右箭頭按鈕ui

5.設置窗口大小
driver.set_window_size(500,600)
driver.maximize_window() 最大化瀏覽器窗口firefox

6.截屏
driver.get_screenshot_as_file("D:\\test\\b1.jpg")orm

7.退出
driver.quit()  #用於結束進程,關閉全部窗口,能夠回收C盤中的臨時文件
driver.close()  #關閉當前窗口,當窗口較多時,可用來關閉部分窗口htm

 

操做元素(鍵盤和鼠標事件)  E:\Python2.7\Lib\site-packages\selenium\webdriver\remote\webelement.py
1.點擊(鼠標左鍵)頁面按鈕:click()
2.清空輸入框:clear()
3.輸入字符串:send_keys(u"哈哈")
4.submit提交

 

模擬鍵盤操做要先導入鍵盤模塊
from selenium.webdriver.common.keys import Keys
模擬enter鍵:send_keys(Keys.ENTER)
鍵盤F1到F12:send_keys(Keys.F1)  #其餘同理
複製:send_keys(Keys.CONTROL,'c') 粘貼,全選,剪切同理
製表鍵Tab:send_keys(Keys.TAB)

 

鼠標事件
from selenium.webdriver.common.action_chains import ActionChains
ActionChains(driver).move_to_element(元素位置).perform()  鼠標懸停
右擊鼠標:context_click()
雙擊鼠標:double_click()

 

多窗口,句柄
瀏覽器窗口的屬性用句柄(handle)來標識
獲取當前句柄
driver.current_window_handle
獲取全部句柄
driver.window_handles   獲得一個列表
切換句柄
方法1:獲取句柄list中的第二個句柄直接切換
all_handles = driver.window_handles
driver.switch_to.window(all_handles[1])

 

frame 與iframe 的區別
frame是整個頁面的框架,iframe是內嵌的網頁元素
切換iframe
driver.switch_to_frame("id值")
釋放iframe
driver.switch_to.default_content() #釋放iframe,從新回到主頁面

 

select下拉框
方法一:分兩步,先定位到select框,再定位到選項
driver.find_element_by_id("框的id值").find_element_by_xpath("//*[@value="1"]").click()
方法二:直接定位
driver.find_element_by_xpath("//*[@id='nr']/option[2]]").click()
方法三:使用Select模塊
from selenium.webdriver.support.select import Select
Select(框的id值).select_by_index(2) 根據索引
Select(框的id值).select_by_value("15") 根據value值
Select(框的id值).select_by_visible_text("學習") 根據text文本

 

alert\confirm\prompt
alert彈出框只有肯定按鈕
confirm彈出框有肯定按鈕和取消按鈕
prompt彈出框有肯定按鈕,取消按鈕和輸入框
t = driver.switch_to_alert()
t.text 獲取彈框內容
t.accept() 點擊肯定按鈕
t.dismiss() 點擊取消按鈕
t.send_keys('anyway you want') 輸入文本值

 

單選框和複選框(radiobox、checkbox)
單選框是圓的;複選框是方的
先判斷按鈕是否被點擊,
driver.find_element_by_id('id').is_selected()  若被點擊 返回True,沒被點擊返回False
driver.find_element_by_id('id0').click() 單選框
checkboxs = driver.find_elements_by_xpath('//*[@type="checkbox"]')  複選框獲得是一組元素列表
for i in checkboxs:
 i.click()

 

table表格定位
1.table頁面查看源碼通常有這幾個明顯的標籤:table、tr、th、td
    2.<table>標示一個表格
    3.<tr>標示這個表格中間的一個行
    4.<th> 定義表頭單元格
    5.<td> 定義單元格標籤,一組<td>標籤將將創建一個單元格,<td>標籤必須放在<tr>標籤內

 

文件上傳
input標籤,而且type屬性的值爲file,直接用send_keys()方法上傳文件
river.find_element_by_name('file').send_keys(r"D:\test\xuexi\test\14.png")
非input標籤 須要藉助autoit工具或者SendKeys第三方庫
 

滑動滾動條  藉助js 控制滾動條高度 方法一: driver.execute_script("document.documentElement.scrollTop=0") #滾動條回到頂部 driver.execute_script("document.documentElement.scrollTop=10000") #滾動條回到底部 能夠修改scrollTop 的值,來定位右側滾動條的位置,0是最上面,10000是最底部

方法二:不推薦使用 谷歌和火狐都沒有生效 driver.execute_script("document.body.scrollTop=0") driver.execute_script("document.body.scrollTop=10000")

方法三: driver.execute_script("window.scrollTo(0,0)")  #滾動條回到頂部 driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")  #滾動條回到底部

 

橫向滾動條
1.有時候瀏覽器頁面須要左右滾動(通常屏幕最大化後,左右滾動的狀況已經不多見了)。
2.經過左邊控制橫向和縱向滾動條
js = "window.scrollTo(100,400);"
driver.execute_script(js)
3.第一個參數x是橫向距離,第二個參數y是縱向距離

js處理內嵌div滾動條
先定位元素而後經過控制 scrollTop的值來控制滾動條高度
driver.execute_script('document.getElementById('id').scrollTop=0')
橫向滾動
先經過id來定位,經過控制scrollLeft的值來控制滾動條高度
driver.execute_script('document.getElementById('id').scrollLeft=0')

滾動條拖地元素可見的位置 先讓頁面直接跳到元素出現的位置,而後就能夠操做了。一樣須要藉助JS去實現。元素聚焦target = driver.find_element_by_xxxx()driver.execute_script("arguments[0].scrollIntoView();", target)

相關文章
相關標籤/搜索