【小白】selenium入門(二)學習筆記 登入百度

NO IMAGE

1.   一些其他

#coding=utf-8
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
#百度輸入框尺寸
size = browser.find_element_by_id("kw").size
print 'size=',size
#底部備案資訊
text = browser.find_element_by_id("cp").text
print 'text=',text
#屬性值
attribute=browser.find_element_by_id("kw").get_attribute('type')
print 'attribute = ',attribute

 

2.    

ActionChains 類滑鼠操作的常用方法:

 context_click() 右擊

 double_click() 雙擊

 drag_and_drop() 拖動

 move_to_element() 滑鼠懸停在一個元素上

click_and_hold() 按下滑鼠左鍵在一個元素上

 

3.    滑鼠右鍵

driver.get('https://www.baidu.com')
element = driver.find_element_by_xpath("//*[@id='lg']/img")
ActionChains(driver).context_click(element).perform()

 

4.   設定等待時間

implicitly_wait():是 webdirver 提供的一個超時等待。隱的等待一個元素被發現,或一個命令完成。

如果超出了設定時間的則丟擲異常。

WebDriverWait():同樣也是 webdirver 提供的方法。在設定時間內,預設每隔一段時間檢測一次當前頁面元素是否存在,如果超過設定時間檢測不到則丟擲異常。

5.   對於批量打鉤

# 選擇頁面上所有的 tag name 為 input 的元素
inputs = driver.find_elements_by_tag_name('input')
#然後從中過濾出 tpye 為 checkbox 的元素,單擊勾選
for input in inputs:
    if input.get_attribute('type') == 'checkbox':
        input.click()
#driver.quit()

但是好像速度特別慢誒。。。

6.     層級定位

那個給的html我按不出來啊。。。

7.   定位 frame 中的物件

如果一個frame中巢狀了另一個頁面

先找到

driver.switch_to_frame(“f1”)

再找到

driver.switch_to_frame(“f2”)

然後正常操作

8.   對話方塊處理登入百度

用class和id定位都不行,用xpath可以

#coding=utf-8
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("http://www.baidu.com/")
#點選登入連結
time.sleep(5)
driver.find_element_by_xpath("//*[@id='u1']/a[7]").click()
time.sleep(5)
#通過二次定位找到使用者名稱輸入框
div=driver.find_element_by_class_name("tang-content").find_element_by_name("userName")
div.send_keys("username")
time.sleep(5)
#輸入登入密碼
driver.find_element_by_name("password").send_keys("password")
#點選登入
driver.find_element_by_id("TANGRAM__PSP_10__submit").click()