python爬虫,selenium使用,Firefox-chrome-IE问题解决方法,selenium的基本操作
2016-11-07 10:48
1286 查看
关于什么是selenium和为什么使用selenium,自己搜资料。
下面是比较好的系统介绍:
https://selenium-python.readthedocs.io/installation.html https://seleniumhq.github.io/selenium/docs/api/py/api.html#selenium
安装的时候,直接anaconda或者
然后试一下下面的程序:
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环境变量中。
该方法待定,试了一下没有成功-待研究
最后通过测试的代码如下:
基本操作参考:https://my.oschina.net/yangyanxing/blog/280871?p=1
下面是比较好的系统介绍:
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()
相关文章推荐
- Python-selenium-Firefox-chrome-IE问题解决方法
- Python-selenium-Firefox-chrome-IE问题解决方法
- python+selenium调用浏览器(IE-Chrome-Firefox)实现爬虫功能
- Selenium-解决使用Webdrive打开Firefox不含有插件的问题(python)
- python中使用selenium调用Firefox缺少geckodriver解决方法
- uploadify在ie,chrome等浏览器上传文件成功,而firefox出现http error 404问题的解决方法
- 使用Python2.7操作Selenium2时只打开浏览器不load URL的解决方法
- chrome,FireFox与IE中的不兼容问题以及解决方法——(不断更新)
- 使用python+selenium制作浏览器爬虫,彻底解决ajax异步加载问题(待更新)
- 前端使用Jquery的getJSON方法,后台使用PHP,解决IE和火狐Firefox中存在的跨域ajax请求问题。
- (selenium 小知识点)解决使用Webdrive打开Firefox不含有插件的问题(python)
- python3.6+selenium+phantomJS 网页爬虫报错NoSuchElementException问题及解决方法
- python中selenium结合chrome操作浏览器,并解决chrome与chromedriver版本不匹配问题
- 【Python3.6爬虫学习记录】(七)使用Selenium+ChromeDriver爬取知乎某问题的回答
- JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
- 常见浏览器兼容问题及相关解决方法(chrome/IE/firefox)
- Python-Selenium2做Web自动化测试(6)-解决使用Webdrive打开Firefox不含有插件的问题
- IE兼容问题解决根源:深刻理解hasLayout属性,原理与使用方法
- DIV+CSS布局在IE和firefox中常见不兼容问题及解决方法