一、安装selenium环境
pip3 install selenium
selenium环境安装成功
二、驱动准备,这里以Firefox为例
首先安装Firefox依赖的geckodriver:
网上查了很多安装geckodriver的方式坑太多,这里建议brew安装:
Mac下安装Homebrew(终端命令):
/usr/bin/ruby-e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew安装成功
如果卸载Homebrew(终端命令):
/usr/bin/ruby-e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
Homebrew使用:
安装软件:brew install xxx
卸载软件:brew uninstall xxx
搜索软件:brew search xxx
更新软件:brew upgrade xxx
查看安装列表:brew list
更新Homebrew:brew update
brew安装geckodriver:
brew install geckodriver
geckodriver安装OK
设置配置文件(~/.bash_profile):
export PATH=$PATH:/path/to/geckodriver
执行test.py文件调用Firefox:
这里采用Sublime编写Python脚本,详请查看:
#编码格式
# encoding: utf-8
#导入selenium模块之webdriver
from selenium import webdriver
#实例化一个FireFox WebDriver对象
driverTest = webdriver.Firefox()
#设置浏览器起始位置
driverTest.set_window_position(x=50,y=50)
#设置浏览器窗口大小
driverTest.set_window_size(width=50, height=50)
#用来导航到给定的url地址的网页(WebDriver 将会等待直到页面全部加载完成后才会把控制权返回给脚本)
driverTest.get("https://www.baidu.com/index.php?tn=monline_3_dg")
#输出导航标题
print("%s"%driverTest.title)
#退出浏览器
driverTest.quit()
执行结果
三、webdriver实例对象之语法
在webdriver中,通过以下函数定位寻找所需元素,即定位元素的8种方式:
#id定位(元素唯一id):
find_element_by_id
#name定位(元素的名称):
find_element_by_name
#XPath定位(元素属性):
find_element_by_xpath
#link定位(链接文本内容):
find_element_by_link_text
find_element_by_partial_link_text
#tag定位(页面html文档下的各种标签):
find_element_by_tag_name
#class定位(元素类名):
find_element_by_class_name
#使用绑定id来找元素:
find_element_by_css_selector
下面我们用以上函数做下测试:
1、模拟简书登录:
先查看页面源代码获取以下信息:
示例获取简书用户名、账号及登录元素:
示例
执行结果
2、模拟简书登录/注册切换:
执行结果
3、class定位测试:
执行结果
4、其他定位测试取元素写法:
示例loginInfro:
driver.find_element_by_xpath("/html/body/form[1]")
driver.find_element_by_xpath("//form[1]")
driver.find_element_by_xpath("//form[@id='loginInfro']")
userName:
driver.find_element_by_xpath("//form[input/@name='userName']")
driver.find_element_by_xpath("//form[@id='loginForm']/input[1]")
driver.find_element_by_xpath("//input[@name='userName']")
btn:
driver.find_element_by_xpath("//input[@name='continue'][@type='btn']")
driver.find_element_by_xpath("//form[@id='loginForm']/input[4]"
小白一只,不足之处欢迎指正!期待Python爱好者一起学习进步~










网友评论