美文网首页我爱编程
Mac_Python_Selenium用法

Mac_Python_Selenium用法

作者: Y_Eric | 来源:发表于2018-08-09 16:37 被阅读0次

一、安装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爱好者一起学习进步~

相关文章

网友评论

    本文标题:Mac_Python_Selenium用法

    本文链接:https://www.haomeiwen.com/subject/qtrxbftx.html