1120

  模糊記憶對於selenium中的幾個方法python

首先,使用要有在前的from selenium import webdriver和對鼠標事件的檢測from selenium.webdriver.common.action_chains import ActionChars靈活用tab來快速打出git

而後是針對網頁定位,先是給有url(或者添加手動輸入的)url='https://www.bilibili.com/'github

接着是給定path(也就是你的chromedriver.exe的位置[對於chromedrivr.exe的安裝有時間再寫出])我的建議,exe文件能夠重命名,按喜愛能夠本身更改。路徑建議不要有中文。path='D:\\python\\chromedriver.exeweb

下一步我的意定爲實例化一個robot來看成操做對象driver=webdriver.Chrome(executable_path=path)這裏的path=path就是指定path(你的chrome driver文件的位置)[對於爲啥那裏是Chrome我也不懂,估計是方法名就那樣定義的](用pycharm進入chrome函數看了一下,只是介紹,而Chrome函數裏面纔是真身,也就是Chrome纔是函數體,chrome是介紹)chrome

用瀏覽器加載頁面的方法➡driver.get(url)(這裏用到的url就是你上面指定的)瀏覽器

開始定位元素,展現xpath的用法(指定性強)driver.find_element_by_xpath('//*[@id="bili-header-m"]/div[1]/div[3]/div[2]/div[1]/ul/li[1]/a/div/img') driver是對象,來調用xpath定位的方法,傳入參數是xpath定位用的,瀏覽器中能夠F2裏面定位而後右擊copy複選框有xpath[以下圖,能夠點開看(大概)]ps:定位方法有不少,有時間再介紹函數

插入說明

有了定位,就能夠作到點擊,把定位的代碼改一下ui

driver.find_element_by_xpath('//*[@id="banner_link"]/div/div/a/span').click()

就是點擊排行榜了,最基礎的操做還有刷新driver.refresh()、返回driver.back()、瀏覽器窗口最大化driver.maxmize_window()、關閉單個窗口driver.close()、關閉全部窗口driver.quit()、設置窗口大小driver.forward()、設置瀏覽器位置driver.set_window_position(300,200)
url

webdriver 的其餘方法:size(返回元素大小)text(得到元素的文本)title(得到頁面title)current_url(獲取當前頁面URL)get_attribute()(獲取屬性值)is_disaplay()(判斷元素是否可見)is_enabled()(判斷元素是否可用)再多的就等用到了再來補充😂spa

鼠標

除了基礎的那些click這種點擊操做,大部分鼠標操做是封裝在ActionChains類中的。導入也就是

from selenium.webdriver.common.action_chains import ActionChains

用的多的:

說在前面,使用ActionChains必定要有結尾函數.perform()這是說明提交併執行,沒有的話就不會按你想的來(我的理解,鼠標操做能夠不少同時,或者好幾步一塊兒,因此,要有結束標誌)

context_click()(右擊,模擬鼠標右擊[基本沒用,網頁中右擊沒大用])

double_click()(雙擊,有的時候用)

drag_and_drop()(拖動,能夠來模擬雙標拖動效果)實際運用上也很少

move_to_element()(懸停,一般用來檢測是否有懸停時顯示)

鍵盤 

send_keys(Keys.參數)

參數的位置:BACK_SPACE[刪除鍵]  SPEACE[空格]  Tab[製表鍵]  ESCAPE[回退鍵]    ENTER[回車鍵]  CONTROL,'a'[全選]  CONTROL,'a'[複製]

以上,如全選就是send_keys(Keys.CONTROL,'a')這樣使用

元素等待

導入 from selenium.webdriver.support.wait import WebDriverWait 等待類

導入 from selenium.webdriver.support import expected_conditions as EC 判斷條件(這裏的as是起別名,能夠不加)

11月20日over

本站公眾號
   歡迎關注本站公眾號,獲取更多信息