时间:2023-07-22 16:18:02 | 来源:网站运营
时间:2023-07-22 16:18:02 来源:网站运营
使用Selenium对网页元素进行定位的诸种方法:使用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返回的是一个对应的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选择器的绝对语法我们可以通过浏览器调试控制台中的“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)
匹配不到链接文字为“州的先生”的元素:关键词:定位,方法,使用