对应于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的编码方式真的是让人头疼,几乎大部分时间都要解决获取来的内容编码问题。只要是涉及到中文,或多或少会出现编码的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。