SunXinFei / sunxinfei.github.io

前后端技术相关笔记,已迁移到 Issues 中
https://github.com/SunXinFei/sunxinfei.github.io/issues
32 stars 3 forks source link

Selenium #19

Closed SunXinFei closed 3 years ago

SunXinFei commented 5 years ago

Selenium在MAC中的环境搭建

由于mac中自带python,那么我们可以避开python的安装。

  1. 运行sudo easy_install pip 安装pip;
  2. 运行sudo pip install selenium 安装selenium;
  3. 安装与运行机器的chrome浏览器版本号相同的chromedriver brew install chromedriver; 注意:如果运行该命令报错:则改为如下命令去执行:
    brew tap caskroom/cask
    brew cask install chromedriver

    新建test.py,粘贴下面的内容;保存之后使用python test.py执行,即可得到运行结果与爬虫截图。

    
    #-*-  coding:utf-8 -*-
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    #要想调用键盘按键操作需要引入keys包
    from selenium.webdriver.common.keys import Keys
    import time
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    driver = webdriver.Chrome(chrome_options=chrome_options)
    driver.set_window_size(1366, 768)
    driver.get("http://www.baidu.com")
    # 获取页面名为wraper的id标签的文本内容
    data = driver.find_element_by_id('wrapper').text
    #打印数据内容
    print(data)
    print driver.title
    #生成页面快照并保存
    driver.save_screenshot("baidu.png")
    #获取当前页面Cookie
    print(driver.get_cookies())
    #ctrl+a全选输入框内容
    driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')
    #ctrl+x剪切输入框内容
    driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'x')

输入框重新输入内容

driver.find_element_by_id('kw').send_keys(u'百度')

模拟Enter回车键

driver.find_element_by_id('su').send_keys(Keys.RETURN) time.sleep(5)

清空输入框内容

driver.find_element_by_id('kw').clear()

生成新的页面快照

driver.save_screenshot('test.png')

获取当前url

print(driver.current_url) driver.close()