GVKun编程网logo

Selenium Firefox WebDrive,使用Python在div中滚动(selenium 滚动页面)

6

在本文中,我们将为您详细介绍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 滚动页面)

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 + 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?

perl – 使用Firefox 26的Selenium Webdriver 2?

今天早上我用2.32和Firefox 25.0.1运行Selenium. Firefox更新到26.0,突然Selenium停止工作.它会弹出新的浏览器窗口,但只是坐在那里提示搜索或地址. Selenium是否有问题?它是否被Firefox地址栏中的新提示搞糊涂了?是否已经在较新的Selenium 2.3x中修复过?

在等待修复时,更改我的代码以使用Chrome或(yecch)IE10的最简单方法是什么?我想让我的测试代码可配置,以便我的小组中的其他人可以使用他们选择的浏览器(尤其是Chrome).我尝试通过在new()方法中添加’browser_name’=>’* chrome’来让Chrome工作,但它从未奏效.

顺便说一句,我使用的是Perl语言绑定(Selenium :: Remote :: Driver 0.17).

解决方法

尝试将selenium更新为2.38.0(撰写本文时为最新版本).我有类似的问题与firefox更新,然后按钮没有被点击和升级版本解决了它.希望这能解决它.

Python Selenium-FireFox Webdriver配置文件首选项中可能有哪些键

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这是jsonpython2.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()方式配置浏览器设置

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()方式配置浏览器设置的相关知识,请在本站搜索。

本文标签: