macbookpythonid_Mac 下python + Selenium + PhantomJS自动登录

本文介绍如何在Mac系统中使用Python+Selenium+PhantomJS实现自动登录,并提供了具体步骤及示例代码,包括安装Selenium、PhantomJS和Chromedriver等关键组件。
摘要由CSDN通过智能技术生成

Mac 下python + Selenium + PhantomJS自动登录

安装Seleniumsudo pip install selenium

PhantomJSbrew install phantomjs

下载chromedriver

http://chromedriver.storage.googleapis.com/index.html

我这下载的chromedriver_mac64.zip,将解压后的chromedriver移动到/usr/local/bin目录下 。

示例# -*- coding: utf-8 -*-

from selenium import webdriver

import time

def login(username,pwd):

driver = webdriver.PhantomJS()

# driver = webdriver.Chrome()

driver.get("http://mail.163.com")

print "浏览器最大化"

driver.maximize_window() #将浏览器最大化显示

driver.set_window_size(1000, 800) #参数数字为像素点

# wait = ui.WebDriverWait(driver, 60)

# wait.until(lambda dr: dr.find_element_by_name('email').is_displayed())

#selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"email"}

# 因为登录窗口变成了iframe

frame = driver.find_element_by_xpath('//iframe[@id="x-URS-iframe"]')

driver.switch_to.frame(frame)

time.sleep(1)

driver.find_element_by_name("email").send_keys(username)

driver.find_element_by_name("password").send_keys(pwd)

driver.find_element_by_id("dologin").click()

# wait.until(lambda dr: dr.find_element_by_id('login_area').is_displayed())

#返回(后退)

# driver.back()

#前进

# driver.forward()

time.sleep(3)

#截屏

driver.save_screenshot('screen.png')

driver.quit()

#执行该文件的主过程

if __name__ == '__main__':

login("username","password")

## 安装

1. Selenium

```

sudo pip install selenium

```

2. PhantomJS

```

brew install phantomjs

```

3. 下载chromedriver

http://chromedriver.storage.googleapis.com/index.html

我这下载的[chromedriver_mac64.zip](http://chromedriver.storage.googleapis.com/2.29/chromedriver_mac64.zip),将解压后的chromedriver移动到/usr/local/bin目录下 。

## 示例

```

# -*- coding: utf-8 -*-

from selenium import webdriver

import time

def login(username,pwd):

driver = webdriver.PhantomJS()

# driver = webdriver.Chrome()

driver.get("http://mail.163.com")

print "浏览器最大化"

driver.maximize_window() #将浏览器最大化显示

driver.set_window_size(1000, 800) #参数数字为像素点

# wait = ui.WebDriverWait(driver, 60)

# wait.until(lambda dr: dr.find_element_by_name('email').is_displayed())

#selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"email"}

# 因为登录窗口变成了iframe

frame = driver.find_element_by_xpath('//iframe[@id="x-URS-iframe"]')

driver.switch_to.frame(frame)

time.sleep(1)

driver.find_element_by_name("email").send_keys(username)

driver.find_element_by_name("password").send_keys(pwd)

driver.find_element_by_id("dologin").click()

# wait.until(lambda dr: dr.find_element_by_id('login_area').is_displayed())

#返回(后退)

# driver.back()

#前进

# driver.forward()

time.sleep(3)

#截屏

driver.save_screenshot('screen.png')

driver.quit()

#执行该文件的主过程

if __name__ == '__main__':

login("username","password")

```

如果你运行了上面的程序,可能会报错,那就来瞧瞧这个帖子吧[selenium +phantomjs 登录126邮箱 iframe定位问题](http://blog.csdn.net/fastwxf/article/details/51547612)

>参考

http://selenium-python.readthedocs.io/installation.html

[Docker环境下运行Python + Selenium + Chrome](http://mp.weixin.qq.com/s/jO0VKpQ-mMOmkM_a0jsGoQ)

发表评论 登录:

昵称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值