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()
写评论
很抱歉,必須登入網站才能發佈留言。