selenium threading运行后退出_Selenium的使用
Selenium是一個自動化測試工具,利用它可以模仿人類行為,如點擊、下滑、移動鼠標等,同時還能獲取網頁源碼
相關鏈接:https://www.selenium.dev/
目錄
1、準備工作
2、基本示范
3、功能介紹
4、信息獲取
5、切換頁面
1、準備工作
首先要確保安裝好selenium庫和對應瀏覽器的驅動,若沒有安裝可以參考前面的文章——爬蟲開發環境部署
2、基本示范
這里用的是Chrome瀏覽器
from selenium import webdriverbrowser = webdriver.Chrome() browser.get('https://www.baidu.com') browser.quit() # 退出運行代碼后會彈出一個百度的頁面
如果你用的發其他瀏覽器,比如Firefox就可以這樣寫
browser = webdriver.Firefox()3、功能介紹
- 3.1、請求網站
用get()方法請求網站,傳入一個url即可,同時我們可以調用page_source獲取源碼
from selenium import webdriverbrowser = webdriver.Chrome() browser.get('https://www.baidu.com') print(browser.page_source) # 獲取網頁源碼 browser.quit() # 退出- 3.2、單個節點查找
我們查找一下百度的輸入框
我們可以看到這個input標簽內有哪些內容class、id、name,我們可以通過這些來定位這個位置,當然也可以根據css、xpath來查找
from selenium import webdriverbrowser = webdriver.Chrome() browser.get('https://www.baidu.com') a = browser.find_element_by_class_name('s_ipt') b = browser.find_element_by_id('kw') c = browser.find_element_by_xpath('//input[@class="s_ipt"]') browser.quit() # 退出 print(a) print(b) print(c)輸出結果: <selenium.webdriver.remote.webelement.WebElement (session="3a9746646e68a7e5ddb24304cbd6c705", element="fa252264-5131-42a3-ac27-b393d51867c1")> <selenium.webdriver.remote.webelement.WebElement (session="3a9746646e68a7e5ddb24304cbd6c705", element="fa252264-5131-42a3-ac27-b393d51867c1")> <selenium.webdriver.remote.webelement.WebElement (session="3a9746646e68a7e5ddb24304cbd6c705", element="fa252264-5131-42a3-ac27-b393d51867c1")>我們可以發現都是一樣的
find_element_by_class_name()是根據class屬性查找find_element_by_id()就是根據id來查找
這里列出所有定位單個節點的方法,大家可以根據自己的習慣來選擇
- 3.3、節點交互
這里介紹幾個常用的功能:點擊、輸入文本、清空文本
點擊用click(),輸入文本用send_keys(),清楚文本用clear()
示例:
這里用百度搜索爬蟲
首先是要找到輸入框所在的HTML位置
我們可以輕松的找到它,在class為s_ipt的input標簽下
輸入文本
browser.find_element_by_class_name('s_ipt').send_keys('爬蟲')清空文本
中間加個sleep,可以清楚看到全過程
browser.find_element_by_class_name('s_ipt').send_keys('爬蟲') time.sleep(1) browser.find_element_by_class_name('s_ipt').clear()最后點擊百度一下
browser.find_element_by_id('su').click()4、信息獲取
- 4.1、屬性獲取
既然可以定位節點那也可以獲取節點的屬性,可以調用get_attribute()
用上一個案例中的百度一下的按鈕吧
from selenium import webdriverbrowser = webdriver.Chrome() browser.get('https://www.baidu.com') a = browser.find_element_by_id('su') print(a.get_attribute('class')) browser.quit() # 退出運行結果: bg s_btn 對比一下,一模一樣- 4.2、獲取文本
文本在class=“title”的span標簽內
from selenium import webdriverbrowser = webdriver.Chrome() browser.get('https://www.baidu.com') a = browser.find_element_by_class_name('title') print(a.text) browser.quit() # 退出運行結果: 下載百度APP咦,怎么回事呢?
在網頁源碼中class=“title”的標簽不唯一,但是它只會返回第一個符合條件的。那現在怎么辦呢?用xpath定位,右鍵點擊標簽可以直接copy XPath規則
from selenium import webdriverbrowser = webdriver.Chrome() browser.get('https://www.baidu.com') a = browser.find_element_by_xpath('//*[@id="s_icons"]/a[2]/span[2]') print(a.text) browser.quit() # 退出但是直接報錯了,原來是我打開的百度與驅動器打開的百度設置不同。這里就用驅動器打開的百度調試就好了。
這就對上了
5、切換頁面
第一次打開百度一下的頁面,第二次新建一個頁面打開知乎的官網
from selenium import webdriverbrowser = webdriver.Chrome() browser.get('https://www.baidu.com') browser.execute_script('window.open()') browser.switch_to.window(browser.window_handles[1]) browser.get('https://www.zhihu.com/signin?next=%2F') browser.quit() # 退出execute_script('window.open()')這個命令就是打開一個新的選項卡,switch_to.window()是切換到某個選項卡,這里是切換到第二個選項卡
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的selenium threading运行后退出_Selenium的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css 浮动在最上层_CSS的“层”峦“
- 下一篇: 仿个人税务 app html5_手机里发