selenium 自动化测试和爬虫

IDE: PyCharm 社区版

python: 3.7.2

浏览器: chrome 72.0.3626.81(正式版本) (64 位)(浏览器输入chrome://settings/help 可以查看)

selenium 是一个自动化测试工具, 我们可以用这个工具模拟用户登录网站, 然后在网站上面进行一些操作,也可以用于爬虫。

(这个是前端模拟用户操作,后台爬虫的话,用requests 和 BeautifulSoup 就行了)

第一步,在PyCharm 的项目中安装selenium

“File”-》“Settings” -》弹出窗口-》“Project Interpreter” =》点击右边的“+”

在弹出的窗口输入“selenium” -》点击左下角的“Install Package” =》安装成功。

第二步,下载chromedriver

谷歌官网的链接是不能直接访问到的, 

国内镜像:http://npm.taobao.org/mirrors/chromedriver/

选择跟浏览器版本对应的chromedriver 下载, 我选的是

72.0.3626.7/  chromedriver_win32.zip         (64位系统可以用) 

解压到: 把chromedriver.exe  解压到Python的安装目录:Python\Python37\Scripts\ 里面

当然你可以解压到任何地方, 但是调用的时候webdriver.Chrome(executable_path="你解压的目录\chromedriver")

第三步, 简单测试

from selenium import webdriver

if __name__ == "__main__":

    browser= webdriver.Chrome()   #初始化并打开一个chrome 窗口
    browser.maximize_window()      #窗口最大化
    browser.get('https://www.baidu.com/')   #连接到百度
    browser.implicitly_wait(10)             #设置10秒超时
    time.sleep(10)
    browser.close()                      #关闭chrome窗口

效果图片

第四步,一些API

感觉就跟Jquery 一样对DOM 的操作很方便, 可以查找元素, 可以给元素赋值, 可以触发元素的事件,可以执行JS 语句。

1. var element = brower.find_element_by_*****("**")   #获取单个个元素

                                   find_elements_by_*****("**")   #获取多个元素

  • find_element_by_id("kw")                              #id
  • find_element_by_name("wd")                        #name

  • find_element_by_class_name("s_btn")         #通过classname, 但是只能一个classname,不能同时传多个

  • find_element_by_css_selector(".bg.s_btn")   #同上,都是classname, 但是这个可以多个classname,并且它也可以通过属性,id或后代选择元素,适合复杂的匹配

  • find_element_by_xpath(".//*[@id='kw']")         #xpath,xpath 比较复杂,可以自行百度用法,复杂的匹配方式推荐xpath

  • find_element_by_tag_name("input")               #tag name

  •  

    find_element_by_link_text("新闻")                   #超链接的文字

  • find_element_by_partial_link_text("新")           #超链接的文字一部分,类似模糊查询

上面8 个都有对应的find_elements_by_*****("**")   方法

2. 文本框的一些操作

  • element.clear()                                        #清空内容
  • element.send_keys (u"输入的内容")       #输入中文 u"****", 否则直接"****"
  • element.send_keys(Keys.RETURN)       #输入回车, 需要
    from selenium.webdriver.common.keys import Keys
  •  

3. 操作选择框Select

from selenium.webdriver.support.ui import Select
选择框元素 = browser.find_element_by_id("选择框id")   //先找到选择框元素
ss = Select(选择框元素)                 //初始化选择框对象
ss.select_by_index(0)                  //选中第一项, 选中第二项的话,参数为1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值