在本文中,我们将为您详细介绍SeleniumFirefoxWebDrive,使用Python在div中滚动的相关知识,并且为您解答关于selenium滚动页面的疑问,此外,我们还会提供一些关于Fire
在本文中,我们将为您详细介绍Selenium Firefox WebDrive,使用Python在div中滚动的相关知识,并且为您解答关于selenium 滚动页面的疑问,此外,我们还会提供一些关于Firefox + Selenium WebDriver并自动下载csv文件、perl – 使用Firefox 26的Selenium Webdriver 2?、Python Selenium-FireFox Webdriver配置文件首选项中可能有哪些键、python+selenium webdriver.firefox()方式配置浏览器设置的有用信息。
本文目录一览:- Selenium Firefox WebDrive,使用Python在div中滚动(selenium 滚动页面)
- Firefox + Selenium WebDriver并自动下载csv文件
- perl – 使用Firefox 26的Selenium Webdriver 2?
- Python Selenium-FireFox Webdriver配置文件首选项中可能有哪些键
- python+selenium webdriver.firefox()方式配置浏览器设置
Selenium Firefox WebDrive,使用Python在div中滚动(selenium 滚动页面)
我已经使用python一段时间了,我想保存需要事先登录的特定网页。由于此网站使用javascript,因此我决定将selenium用于Firefox和webfox。我能够登录。但是该站点要求我必须接受EULA,然后才能访问所需页面。
问题是我必须向下滚动整个文本(使用单独的div滚动条),然后才能单击接受。我对Selenium和javascript完全陌生。
提供的用户名和密码有效,一旦找到解决方案,我将对其进行更改。
dr = webdriver.Firefox()dr.get("https://freida.ama-assn.org/Freida/user/programDetails.do?pgmNumber=1401611114")dr.find_element_by_id("go_username").clear()dr.find_element_by_id("go_username").send_keys("hajayd")dr.find_element_by_id("go_password").clear()dr.find_element_by_id("go_password").send_keys("123456")dr.find_element_by_id("Image1").click()dr.get("https://freida.ama-assn.org/Freida/eula.do")# code to scroll down eula heredr.find_element_by_id("agreeBtn").click()dr.get("https://freida.ama-assn.org/Freida/user/programDetails.do?pgmNumber=1401611114")# Final page I want to visit
可能吗?还有其他可接受的解决方案吗?
答案1
小编典典您可以WebDriver.execute_script
用来执行javascript:
eula = dr.find_element_by_id(''eulaFrame'')dr.execute_script(''arguments[0].scrollTop = arguments[0].scrollHeight'', eula)
eula
传递给javascript的参数(在上面的示例中)可以使用进行访问arguments[..]
。
旁注:如果return
在javascript代码中使用,则该值可用作的返回值execute_script
。
Firefox + Selenium WebDriver并自动下载csv文件
如何解决Firefox + Selenium WebDriver并自动下载csv文件?
有时内容类型与您期望的不一样使用 Firefox插件(或类似工具)查找文件的真实内容类型并在代码中使用它
顺便说一句,对我来说,内容类型是
fp.set_preference("browser.helperApps.neverAsk.openFile", "application/octet-stream");
fp.set_preference("browser.helperApps.neverAsk.savetodisk", "application/octet-stream");
解决方法
我对Selenium WebDriver和Firefox有问题。我想在对话框窗口中下载没有确认的csv文件,并且我有如下代码:
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.dir",download_dir)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv")
但似乎不起作用。我尝试了与 browser.helperApps.neverAsk.saveToDisk的* 许多组合 *
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv,application/csv,text/plan,text/comma-separated-values")
要么
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/csv")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/plain")
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","text/comma-separated-values")
但没有任何区别,Firefox也不会自动下载。我该如何解决?
perl – 使用Firefox 26的Selenium Webdriver 2?
在等待修复时,更改我的代码以使用Chrome或(yecch)IE10的最简单方法是什么?我想让我的测试代码可配置,以便我的小组中的其他人可以使用他们选择的浏览器(尤其是Chrome).我尝试通过在new()方法中添加’browser_name’=>’* chrome’来让Chrome工作,但它从未奏效.
顺便说一句,我使用的是Perl语言绑定(Selenium :: Remote :: Driver 0.17).
解决方法
Python Selenium-FireFox Webdriver配置文件首选项中可能有哪些键
我在任何地方都找不到真正的信息,我正在寻找可以在profile.set_preference()
API中使用的可能键的列表。
这里是一些上下文:
from selenium import webdriverfrom pyvirtualdisplay import Displaydisplay = Display(visible=0, size=(1024, 768))display.start()profile = webdriver.FirefoxProfile()
现在,如果要指定客户端SSL,则需要将其配置为FireFox配置文件的首选项。我正在尝试查找所有首选项的列表,以便可以使用它。
答案1
小编典典你可以看一下profile.DEFAULT_PREFERENCES
这是json
在python2.7/site-packages/selenium/webdriver/firefox/webdriver_prefs.json
{u''frozen'': {u''app.update.auto'': False, u''app.update.enabled'': False, u''browser.EULA.3.accepted'': True, u''browser.EULA.override'': True, u''browser.displayedE10SNotice'': 4, u''browser.download.manager.showWhenStarting'': False, u''browser.link.open_external'': 2, u''browser.link.open_newwindow'': 2, u''browser.offline'': False, u''browser.reader.detectedFirstArticle'': True, u''browser.safebrowsing.enabled'': False, u''browser.safebrowsing.malware.enabled'': False, u''browser.search.update'': False, u''browser.selfsupport.url'': u'''', u''browser.sessionstore.resume_from_crash'': False, u''browser.shell.checkDefaultBrowser'': False, u''browser.tabs.warnOnClose'': False, u''browser.tabs.warnOnOpen'': False, u''datareporting.healthreport.logging.consoleEnabled'': False, u''datareporting.healthreport.service.enabled'': False, u''datareporting.healthreport.service.firstRun'': False, u''datareporting.healthreport.uploadEnabled'': False, u''datareporting.policy.dataSubmissionEnabled'': False, u''datareporting.policy.dataSubmissionPolicyAccepted'': False, u''devtools.errorconsole.enabled'': True, u''dom.disable_open_during_load'': False, u''extensions.autoDisableScopes'': 10, u''extensions.blocklist.enabled'': False, u''extensions.logging.enabled'': True, u''extensions.update.enabled'': False, u''extensions.update.notifyUser'': False, u''javascript.enabled'': True, u''network.http.phishy-userpass-length'': 255, u''network.manage-offline-status'': False, u''offline-apps.allow_by_default'': True, u''prompts.tab_modal.enabled'': False, u''security.csp.enable'': False, u''security.fileuri.origin_policy'': 3, u''security.fileuri.strict_origin_policy'': False, u''security.warn_entering_secure'': False, u''security.warn_entering_secure.show_once'': False, u''security.warn_entering_weak'': False, u''security.warn_entering_weak.show_once'': False, u''security.warn_leaving_secure'': False, u''security.warn_leaving_secure.show_once'': False, u''security.warn_submit_insecure'': False, u''security.warn_viewing_mixed'': False, u''security.warn_viewing_mixed.show_once'': False, u''signon.rememberSignons'': False, u''toolkit.networkmanager.disable'': True, u''toolkit.telemetry.enabled'': False, u''toolkit.telemetry.prompted'': 2, u''toolkit.telemetry.rejected'': True}, u''mutable'': {u''browser.dom.window.dump.enabled'': True, u''browser.newtab.url'': u''about:blank'', u''browser.newtabpage.enabled'': False, u''browser.startup.homepage'': u''about:blank'', u''browser.startup.page'': 0, u''dom.max_chrome_script_run_time'': 30, u''dom.max_script_run_time'': 30, u''dom.report_all_js_exceptions'': True, u''javascript.options.showInConsole'': True, u''network.http.max-connections-per-server'': 10, u''startup.homepage_welcome_url'': u''about:blank'', u''webdriver_accept_untrusted_certs'': True, u''webdriver_assume_untrusted_issuer'': True}}
python+selenium webdriver.firefox()方式配置浏览器设置
webdriver.firefox() 爬虫需求: (其实是输入参数可获取.zip/pdf 文件,然后点击下载)
——但是firefox浏览器有Bug,点击下载之后会有弹出窗口,需要你点击确定,这怎么能成,所以
百度一把:得知需要修改firefox的配置文件mimeTypes.rdf
——搜索栏输入:about:support 配置文件夹—》打开文件夹—》获取文件地址
添加配置内容:
<RDF:Description RDF:about="urn:mimetype:application/zip"
NC:value="application/zip"
NC:editable="true"
NC:fileExtensions="zip"
NC:description="*.zip">
<NC:handlerProp RDF:resource="urn:mimetype:handler:application/zip"/>
</RDF:Description>
<RDF:Seq RDF:about="urn:mimetypes:root">
<RDF:li RDF:resource="urn:mimetype:application/zip"/>
</RDF:Seq>
=====现在下载不需要每次都点击了=====
但是:使用webdriver.firefox()时,程序调用的是一个全新的firefox,所以配置文件并没有起到作用
——程序中可添加FirefoxProfile文件来支持 (FirefoxProfile文件目录就是mimeTypes.rdf的上级目录)
def __init__(self):
self.url = ''+++++++++++++''
profile=webdriver.FirefoxProfile("C:\Users\用户名\AppData\Roaming\Mozilla\Firefox\Profiles\9a71bi5y.default")
self.browser = webdriver.Firefox(profile)
今天关于Selenium Firefox WebDrive,使用Python在div中滚动和selenium 滚动页面的讲解已经结束,谢谢您的阅读,如果想了解更多关于Firefox + Selenium WebDriver并自动下载csv文件、perl – 使用Firefox 26的Selenium Webdriver 2?、Python Selenium-FireFox Webdriver配置文件首选项中可能有哪些键、python+selenium webdriver.firefox()方式配置浏览器设置的相关知识,请在本站搜索。
本文标签: