對應於webdriver中的定位方法分別是:
driver.find_element_by_name()——最經常使用,簡單
driver.find_element_by_id()——最經常使用,簡單
driver.find_element_by_class_name()
driver.find_element_by_tag_name()——最不靠譜
driver.find_element_by_link_text()——定位文字鏈接好用
driver.find_element_by_partial_link_text()——定位文字鏈接好用
driver.find_element_by_xpath()——最靈活,萬能 (我最擅長)
driver.find_element_by_css_selector()
話很少說,上代碼:css
我本身寫的小例子。僅供參考。html
下載對應的谷歌驅動,放在本身的的谷歌目錄裏面。而後寫入環境變量。python
#!usr/bin/env python #-*- coding:utf-8 _*- """ @author:wujf @file: 例子.py @time: 2019/11/04 """ from selenium import webdriver import time driver = webdriver.Chrome(r'C:\Users\lenovo\AppData\Local\Google\Chrome\Application\chromedriver.exe') driver.maximize_window() #最大化瀏覽器 driver.implicitly_wait(23) #隱式等待 url = "http://www.igxpt.com" driver.get(url) driver.find_element_by_xpath('//div[@class="input-wrap"]/input').send_keys('筆記本') #這裏我找到輸入框模擬輸入「筆記本」 driver.find_element_by_xpath('//div[@class="input-wrap"]/button').click() #我找到搜索模擬點擊搜索 # driver 獲取html字符串 print(driver.page_source) #當前網頁內容 with open('1.html','w',encoding='gb18030' ) as f: #這裏我計入encoding= 'gb18030'是爲了解決中文亂碼問題 f.write(driver.page_source) print(driver.current_url) #當前網頁連接
經過寫這個小例子,我發現python3的編碼方式真的是讓人頭疼,幾乎大部分時間都要解決獲取來的內容編碼問題。只要是涉及到中文,或多或少會出現編碼的問題。web