時間:2023-07-22 16:18:02 | 來源:網(wǎng)站運營
時間:2023-07-22 16:18:02 來源:網(wǎng)站運營
使用Selenium對網(wǎng)頁元素進行定位的諸種方法:使用Selenium進行自動化操作,首先要做的就是通過webdriver的get()方法打開一個URL鏈接。# coding:utf-8''' @author:州的先生 @site:zmister.com @微信公眾號:州的先生'''from selenium import webdriverdriver = webdriver.Chrome(executable_path=r"D:/chromedriver_win32/chromedriver.exe")driver.get('http://www.baidu.com')ele = driver.find_element_by_id('haha')print(ele)
ele返回的是一個對應(yīng)的element元素:# coding:utf-8''' @author:州的先生 @site:zmister.com @微信公眾號:州的先生'''from selenium import webdriverdriver = webdriver.Chrome(executable_path=r"D:/chromedriver_win32/chromedriver.exe")driver.get('http://www.baidu.com')ele = driver.find_element_by_id('haha')print(ele)
運行代碼,因為沒有匹配的id值,所以拋出了異常:# coding:utf-8''' @author:州的先生 @site:zmister.com @微信公眾號:州的先生'''from selenium import webdriverdriver = webdriver.Chrome(executable_path=r"D:/chromedriver_win32/chromedriver.exe")driver.get('http://www.baidu.com')ele = driver.find_element_by_name('wd')print(ele)
ele返回匹配到的element元素:C:/Python35/python.exe E:/pythonproject/selenium_env/code/2.py<selenium.webdriver.remote.webelement.WebElement (session="23d00cea9ce99d36ffcac96cfb3ca12c", element="0.7355927465563321-1")>
如果定位一個沒有的name屬性值,那么也會拋出NoSuchElementException異常:# coding:utf-8''' @author:州的先生 @site:zmister.com @微信公眾號:州的先生'''from selenium import webdriverdriver = webdriver.Chrome(executable_path=r"D:/chromedriver_win32/chromedriver.exe")driver.get('http://www.baidu.com')ele = driver.find_element_by_name('zmister')print(ele)
# coding:utf-8''' @author:州的先生 @site:zmister.com @微信公眾號:州的先生'''from selenium import webdriverdriver = webdriver.Chrome(executable_path=r"D:/chromedriver_win32/chromedriver.exe")driver.get('http://www.baidu.com')ele = driver.find_element_by_xpath('//*[@id="kw"]')print(ele)
這樣,我們通過XPath路徑也能夠定位到百度首頁搜索框:# coding:utf-8''' @author:州的先生 @site:zmister.com @微信公眾號:州的先生'''from selenium import webdriverdriver = webdriver.Chrome(executable_path=r"D:/chromedriver_win32/chromedriver.exe")driver.get('http://www.baidu.com')ele = driver.find_element_by_tag_name('input')print(ele)
在這里,我們直接通過input的元素標簽名來進行定位,因為百度首頁上第一個input為搜索框,所以我們也能夠定位到:# coding:utf-8''' @author:州的先生 @site:zmister.com @微信公眾號:州的先生'''from selenium import webdriverdriver = webdriver.Chrome(executable_path=r"D:/chromedriver_win32/chromedriver.exe")driver.get('http://www.baidu.com')ele = driver.find_element_by_class_name('s_btn')print(ele)
# coding:utf-8''' @author:州的先生 @site:zmister.com @微信公眾號:州的先生'''from selenium import webdriverdriver = webdriver.Chrome(executable_path=r"D:/chromedriver_win32/chromedriver.exe")driver.get('http://www.baidu.com')ele = driver.find_element_by_css_selector('input.s_btn')print(ele)
CSS選擇器的絕對語法我們可以通過瀏覽器調(diào)試控制臺中的“Copy”獲取到:# coding:utf-8''' @author:州的先生 @site:zmister.com @微信公眾號:州的先生'''from selenium import webdriverdriver = webdriver.Chrome(executable_path=r"D:/chromedriver_win32/chromedriver.exe")driver.get('http://www.baidu.com')ele = driver.find_element_by_link_text('地圖')print(ele)
這樣就成功的地位到了元素:# coding:utf-8''' @author:州的先生 @site:zmister.com @微信公眾號:州的先生'''from selenium import webdriverdriver = webdriver.Chrome(executable_path=r"D:/chromedriver_win32/chromedriver.exe")driver.get('http://www.baidu.com')ele = driver.find_element_by_link_text('州的先生')print(ele)
匹配不到鏈接文字為“州的先生”的元素:關(guān)鍵詞:定位,方法,使用
微信公眾號
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。