[python selenium] 操作方法整理

來源:互聯網
上載者:User

標籤:break   bdr   gpo   cookie   瀏覽器   splay   驅動   使用   page   

個人筆記,摘抄自蟲師python selenum,僅供個人蔘考

 

1、安裝:

pip install selenium
下載webdriver
# webdriver 下載並放置在python主目錄1.chromedriver :https://code.google.com/p/chromedriver/downloads/list2.Firefox的驅動geckodriver :https://github.com/mozilla/geckodriver/releases/3.IE的驅動IEdriver :http://www.nuget.org/packages/Selenium.WebDriver.IEDriver/

2、基本使用

from selenium import webdriverbrowser = webdriver.Firefox()browser = webdriver.Chrome()browser.set_window_size(480, 800)  #參數數字為像素點browser.maximize_window()  #將瀏覽器最大化顯示browser.get(url)browser.back()browser.forward()browser.close() # browser.quit() 

 

3、元素定位

# 單個元素browser.find_element_by_id()browser.find_element_by_name()browser.find_element_by_tag_name()browser.find_element_by_class_name()browser.find_element_by_css_selector()browser.find_element_by_xpath()# 多個元素browser.find_elements_by_[...]()#層級定位#點擊Link1連結(彈出下拉式清單)dr.find_element_by_link_text(‘Link1‘).click()#找到id 為dropdown1的父元素WebDriverWait(dr, 10).until(lambda the_driver: the_driver.find_element_by_id(‘dropdown1‘).is_displayed())#在父親元件下找到link為Action的子項目menu = dr.find_element_by_id(‘dropdown1‘).find_element_by_link_text(‘Action‘)#滑鼠定位到子項目上webdriver.ActionChains(dr).move_to_element(menu).perform()# 滑鼠移到懸停元素上 ActionChains(browser).move_to_element(ele).perform()

 

4、 操作對象、WebElement 常用方法,小結

操作對象:

  • · click 點擊對象
  • · send_keys 在對象上類比按鍵輸入
  • · clear 清除對象的內容,如果可以的話

  WebElement  另一些常用方法:

  • · text  擷取該元素的文本
  • · submit  提交表單
  • · get_attribute  獲得屬性值

 

5、定位frame

多層架構或視窗的定位:

  • switch_to_frame()
  • switch_to_window()

智能等待:

  • implicitly_wait()

 

 6、使用selenium webdriver 調用js

調用js方法

  • execute_script(script, *args)

在當前視窗/架構 同步執行javaScript

指令碼:JavaScript的執行。

*參數:適用任何JavaScript指令碼。

使用:

driver.execute_script(‘document.title’)

 

7、selenium 對下拉框資訊的定位,以及對警告提示框的處理

本節重點

  • 處理下拉框
  • switch_to_alert()  
  • accept()

8、通過js控制捲軸到視窗底部

js="var q=document.getElementById(‘id‘).scrollTop=10000"driver.execute_script(js)js="var q=document.documentElement.scrollTop=10000"driver.execute_script(js)

 

 

 9、類比鍵盤按鍵動作

  • l 鍵盤按鍵用法
  • l 鍵盤按鍵組合用法
  • l send_keys() 輸入中文運行報錯問題
from selenium.webdriver.common.keys import Keys  #需要引入keys包driver.find_element_by_id("user_name").send_keys(Keys.TAB)driver.find_element_by_id("user_pwd").send_keys(Keys.ENTER)driver.find_element_by_id("kw").send_keys(Keys.CONTROL,‘a‘)driver.find_element_by_id("kw").send_keys(Keys.CONTROL,‘c‘)driver.find_element_by_id("kw").send_keys(Keys.CONTROL,‘v‘)send_keys(u"輸入中文")
module:selenium.webdriver.common.keys? class Keys()– NULL = u’ue000’– CANCEL = u’ue001’ # ^break– HELP = u’ue002’– BACK_SPACE = u’ue003’– TAB = u’ue004’– CLEAR = u’ue005’– RETURN = u’ue006’– ENTER = u’ue007’– SHIFT = u’ue008’– LEFT_SHIFT = u’ue008’ # alias– CONTROL = u’ue009’– LEFT_CONTROL = u’ue009’ # alias– ALT = u’ue00a’– LEFT_ALT = u’ue00a’ # alias– PAUSE = u’ue00b’– ESCAPE = u’ue00c’– SPACE = u’ue00d’– PAGE_UP = u’ue00e’– PAGE_DOWN = u’ue00f’– END = u’ue010’– HOME = u’ue011’– LEFT = u’ue012’– ARROW_LEFT = u’ue012’ # alias– UP = u’ue013’– ARROW_UP = u’ue013’ # alias– RIGHT = u’ue014’– ARROW_RIGHT = u’ue014’ # alias– DOWN = u’ue015’– ARROW_DOWN = u’ue015’ # alias– INSERT = u’ue016’– DELETE = u’ue017’– SEMICOLON = u’ue018’– EQUALS = u’ue019’– NUMPAD0 = u’ue01a’ # numbe pad keys– NUMPAD1 = u’ue01b’– NUMPAD2 = u’ue01c’– NUMPAD3 = u’ue01d’– NUMPAD4 = u’ue01e’– NUMPAD5 = u’ue01f’– NUMPAD6 = u’ue020’– NUMPAD7 = u’ue021’– NUMPAD8 = u’ue022’– NUMPAD9 = u’ue023’– MULTIPLY = u’ue024’– ADD = u’ue025’– SEPARATOR = u’ue026’– SUBTRACT = u’ue027’– DECIMAL = u’ue028’– DIVIDE = u’ue029’– F1 = u’ue031’ # function keys– F2 = u’ue032’– F3 = u’ue033’– F4 = u’ue034’– F5 = u’ue035’– F6 = u’ue036’– F7 = u’ue037’– F8 = u’ue038’– F9 = u’ue039’– F10 = u’ue03a’– F11 = u’ue03b’– F12 = u’ue03c’– META = u’ue03d’– COMMAND = u’ue03d’
鍵盤類比

 

 

 10、通過webdirver 操作cookie

  • driver.get_cookies() 獲得cookie資訊
  • add_cookie(cookie_dict)  向cookie添加會話資訊
  • delete_cookie(name)   刪除特定(部分)的cookie
  • delete_all_cookies()    刪除所有cookie

 

 11、selenium webdriver 滑鼠事件的用法

ActionChains 類

  •   context_click()  右擊
  •   double_click()   雙擊
  •   drag_and_drop()  拖動
from selenium.webdriver.common.action_chains import ActionChains#定位到要雙擊的元素qqq =driver.find_element_by_xpath("xxx")#對定位到的元素執行滑鼠雙擊操作ActionChains(driver).double_click(qqq).perform()#定位元素的原位置element = driver.find_element_by_name("source")#定位元素要移動到的目標位置target =  driver.find_element_by_name("target")#執行元素的移動操作ActionChains(driver).drag_and_drop(element, target).perform()

[python selenium] 操作方法整理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.