python爬虫,selenium使用,Firefox-chrome-IE问题解决方法,selenium的基本操作



关于什么是selenium和为什么使用selenium,自己搜资料。




下面是比较好的系统介绍:

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

https://seleniumhq.github.io/selenium/docs/api/py/api.html#selenium




安装的时候,直接anaconda或者

pip install selenium

然后试一下下面的程序:

<span style="font-size:14px;">from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Ie()
driver.get("http://www.baidu.com")
driver.close()</span>
常常会发现下面的错误:

selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path.
selenium.common.exceptions.WebDriverException: Message: 'IEDriver executable needs to be available in the path.

selenium.common.exceptions.WebDriverException: Message: "Can't load the profile.



修复办法参考:

第一步:下载chrome或者ie的driver,地址:

http://docs.seleniumhq.org/download/

http://download.csdn.net/detail/mmc2015/9674909

第二步:设置对应的环境变量等信息:

from selenium import webdriver
ChromeDriverServer = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = ChromeDriverServer    
browser = webdriver.Chrome(executable_path=ChromeDriverServer)
browser.get(http://stackoverflow.com)
browser.quit()

IE类似:

        IEDriverServer = "C:\Program Files\Internet Explorer\IEDriverServer_64.exe"
        os.environ["webdriver.ie.driver"] = IEDriverServer
        browser = webdriver.Ie(IEDriverServer)




其他错误:

没有修改IE的保护模式设置导致,通常看到报错信息如下:
selenium.common.exceptions.WebDriverException: Message: 'Unexpected error launching Internet Explorer.
Mode settings are not the same for all zones. 
Enable Protected Mode must be set to the same value (enabled or disabled) for all zones.'
解决办法是IE选项设置的安全页中,4个区域的启用保护模式的勾选都去掉(或都勾上)
其他可能的问题有IE的代理服务器设置被打勾了需要去掉勾选,进程里有IEDRIVERSERVER.EXE的进程没有杀掉等等。


IEDriverServer.exe, chromedriver.exe 网上有说:
将 IEDriverServer.exe, chromedriver.exe  放到环境变量path路径的目录里或把他所在的目录加到path环境变量中
该方法待定,试了一下没有成功-待研究







最后通过测试的代码如下:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os

IEDriverServer = "C:\Program Files\Internet Explorer\IEDriverServer_x64.exe"
os.environ["webdriver.ie.driver"] = IEDriverServer 

browser = webdriver.Ie(IEDriverServer)
browser.get("http://www.baidu.com")

browser.close()
print "done..."








基本操作参考:https://my.oschina.net/yangyanxing/blog/280871?p=1


#coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains #引入ActionChains鼠标操作类
from selenium.webdriver.common.keys import Keys #引入keys类操作
import time

def s(int):
    time.sleep(int)
browser = webdriver.Chrome()
browser.get('http://www.baidu.com')
print '现在将浏览器最大化'
browser.maximize_window()
text = browser.find_element_by_name('tj_duty').text
print text #打印备案信息

browser.find_element_by_id('kw1').send_keys(u'杨彦星')
print browser.find_element_by_id('kw1').get_attribute('type')
print browser.find_element_by_id('kw1').size #打印输入框的大小
browser.find_element_by_id('su1').click()
time.sleep(3)

print '现在我将设置浏览器为宽480,高800显示'
browser.set_window_size(480,800)
browser.get('http://m.mail.10086.cn')
time.sleep(3)

print '现在我将回到刚才的页面'
browser.maximize_window()
browser.back()
time.sleep(3)

print '现在我将回到之前的页面'
browser.forward()
time.sleep(5)
print '现在我将打开杨彦星的网站进行json搜索'
browser.get('http://www.yangyanxing.com')
browser.find_element_by_xpath(".//*[@id='ls']").send_keys(u'json')
browser.find_element_by_xpath(".//*[@id='header']/div[1]/div/form/input[2]").click()
time.sleep(5)
browser.quit()

browser = webdriver.Chrome()

print '以下将以登录人人网来进行上面的综合应用'
browser.get('http://www.renren.com/SysHome.do')
browser.find_element_by_id('email').clear()#这个是以id选择元素
browser.find_element_by_id('email').send_keys('email')
browser.find_element_by_id('email').send_keys(Keys.BACK_SPACE)
time.sleep(2)
browser.find_element_by_id('email').send_keys('m')
s(2)
browser.find_element_by_id('email').send_keys(Keys.CONTROL,'a')
s(2)
browser.find_element_by_id('email').send_keys(Keys.CONTROL,'x')#剪切掉里面的内容
s(2)
browser.find_element_by_id('email').send_keys(Keys.CONTROL,'v') #重新输入进去
s(2)
browser.find_element_by_name('password').clear()#这个是以name选择元素
browser.find_element_by_name('password').send_keys('password')
#browser.find_element_by_xpath(".//*[@id='login']").click()#这个是以xpath选择元素
browser.find_element_by_xpath(".//*[@id='login']").send_keys(Keys.ENTER) #这里通过点击Enter键来登录
browser.maximize_window()
article = browser.find_element_by_link_text(u'周碧华:社科院出现内鬼意味着什么?')
ActionChains(browser).move_to_element(article).perform()#将鼠标移动到这里,但是这里不好用
ActionChains(browser).context_click(article).perform()
time.sleep(5)

browser.quit()


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值