python安装selenium(Firefox和Chrome)+元素定位

一、下载地址
谷歌浏览器chromedriver驱动下载地址:
https://chromedriver.storage.googleapis.com/index.html

火狐浏览器geckodriver驱动下载地址:
https://registry.npmmirror.com/binary.html?path=geckodriver/

二、谷歌浏览器配置:
将下载好的chromedriver驱动解压后放在python文件夹中
python安装selenium(Firefox和Chrome)+元素定位_第1张图片
三、火狐浏览器:
将下载好的geckodriver驱动解压后放到Firefox的根目录中
python安装selenium(Firefox和Chrome)+元素定位_第2张图片
四、配置火狐浏览器的环境变量
按快捷键win+R,输入“sysdm.cpl”,回车 选择高级,进入环境变量,找到path双击进入,将下载的geckivodrer文件路径复制并粘贴到新建中 完成配置
C:\Program Files\Mozilla Firefox\geckodriver.exe
python安装selenium(Firefox和Chrome)+元素定位_第3张图片
五、打开pycharm,下载selenium
设置-文件-项目-python编译器,点击“+”,搜索selenium,点击安装软件包;安装完成后,重启pycharm
python安装selenium(Firefox和Chrome)+元素定位_第4张图片
python安装selenium(Firefox和Chrome)+元素定位_第5张图片

python安装selenium(Firefox和Chrome)+元素定位_第6张图片
六、简单的脚本

from selenium import webdriver
#from...import:是只引入某个包里的某个类
from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
#把webdriver的Chrome对象赋值给变量driver。只有获得了浏览器对象后,才可以启动浏览器,打开网址,操作页面元素。

driver.get("http://www.baidu.com")
#获得浏览器对象后,通过get()方法,可以向浏览器发送网址

value=driver.find_element(By.XPATH,"//span[text()='按图片搜索']").get_attribute("class")
#通过相对路径+文本定位元素
print(value)

七、其它定位元素的方法;

id:
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
driver.find_element(By.ID,"kw").send_keys("11") #根据id来定位输入框,在输入框中输入11
name:
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
driver.find_element(By.NAME,"wd").send_keys("11") #根据name来定位输入框,在输入框中输入11
link_text:超链接定位
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
driver.find_element(By.LINK_TEXT,"新闻").click() #根据超链接定位并点击
partall_link_text:部分超链接定位
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
driver.find_element(By.PARTIAL_LINK_TEXT,"新").click()
xpath:
相对路径://开头的
相对路径+唯一索引:先找父级标签,再找爷爷级的,直到找到一个唯一的标签
driver = webdriver.Firefox()
driver.get("http://www.baidu.com")
driver.find_element(By.XPATH,"//form/span[1]/input").send_keys("11")
相对路径+唯一属性
driver.find_element(By.XPATH,"//input[@autocomplete='off']").send_keys("11")
相对路径+通配符(通配符里面的属性必须唯一):通配符[@属性]:复制xpath时容易出错,不是万能的
driver.find_element(By.XPATH,"//*[@autocomplete='off']").send_keys("11")
相对路径+部分属性值:
driver.find_element(By.XPATH,"//*[starts-with(@autocomplete,'of')]").send_keys("11")
#starts-with(@autocomplete,'of'表示以of开头的autocomplete的值
#*[substring(@autocomplete,2)='of']结尾从autocomplete的值的第2位开始算到结束,=of的值
#*[contains(@autocomplete,2,'of']包含,autocomplete的值中包括of的值

你可能感兴趣的:(python,python,chrome,selenium)