对应于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()
话不多说,上代码:
我自己写的小例子。仅供参考。
下载对应的谷歌驱动,放在自己的的谷歌目录里面。然后写入环境变量。
#!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的编码方式真的是让人头疼,几乎大部分时间都要解决获取来的内容编码问题。只要是涉及到中文,或多或少会出现编码的问题。
原文:https://www.cnblogs.com/wujf-myblog/p/11811638.html