Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Selenium Python中禁用图像_Javascript_Python_Css_Selenium_Selenium Webdriver_Php - Fatal编程技术网

Javascript 在Selenium Python中禁用图像

Javascript 在Selenium Python中禁用图像,javascript,python,css,selenium,selenium-webdriver,php,Javascript,Python,Css,Selenium,Selenium Webdriver,Php,因为Webdriver在进入下一行之前会等待整个页面加载,所以我认为禁用图像、css和javascript会加快速度 from selenium import webdriver from selenium.webdriver.firefox.firefox_profile import FirefoxProfile def disableImages(self): ## get the Firefox profile object firefoxProfile = Firef

因为Webdriver在进入下一行之前会等待整个页面加载,所以我认为禁用图像、css和javascript会加快速度

from selenium import webdriver
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile

def disableImages(self):
    ## get the Firefox profile object
    firefoxProfile = FirefoxProfile()
    ## Disable CSS
    firefoxProfile.set_preference('permissions.default.stylesheet', 2)
    ## Disable images
    firefoxProfile.set_preference('permissions.default.image', 2)
    ## Disable Flash
    firefoxProfile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so',
                                      'false')
    ## Set the modified profile while creating the browser object 
    self.browserHandle = webdriver.Firefox(firefoxProfile)
我从stackoverflow那里得到了密码

但当我加上

driver = webdriver.Firefox()
driver.get("http://www.stackoverflow.com/")
最后,它仍然加载图像://p>更新:答案可能不再有效,并且无法更改。请尝试使用
quickjava
扩展名(链接到)


您需要将
firefox\u profile
实例传递给
webdriver
构造函数:

from selenium import webdriver

firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference('permissions.default.stylesheet', 2)
firefox_profile.set_preference('permissions.default.image', 2)
firefox_profile.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 'false')

driver = webdriver.Firefox(firefox_profile=firefox_profile)
driver.get('http://www.stackoverflow.com/')

driver.close()
这就是它的显示方式:


不幸的是,
firefox\u profile.set\u preference('permissions.default.image',2)
选项将不再适用于禁用最新版本firefox的图像-[原因请参见Alecxe对我的问题的回答]

我的最佳解决方案是使用firefox扩展quickjava,它可以禁用图像-

我的Python代码:

 from selenium import webdriver
 firefox_profile = webdriver.FirefoxProfile()

 firefox_profile.add_extension(folder_xpi_file_saved_in + "\\quickjava-2.0.6-fx.xpi")
 firefox_profile.set_preference("thatoneguydotnet.QuickJava.curVersion", "2.0.6.1") ## Prevents loading the 'thank you for installing screen'
 firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Images", 2)  ## Turns images off
 firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.AnimatedImage", 2)  ## Turns animated images off

 driver = webdriver.Firefox(firefox_profile)
 driver.get(web_address_desired)
其他功能也可以通过添加行来关闭:

  firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.CSS", 2)  ## CSS
  firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Cookies", 2)  ## Cookies
  firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Flash", 2)  ## Flash
  firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Java", 2)  ## Java
  firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.JavaScript", 2)  ## JavaScript
  firefox_profile.set_preference("thatoneguydotnet.QuickJava.startupStatus.Silverlight", 2)  ## Silverlight
我知道这是一个问题,但它帮助了我。(搜索引擎中的第一个搜索结果为
php webdriver禁用javascript

我想我应该发布我的代码(修改版本的@kyreniaanswer for)来帮助其他人启动和运行


安装一切
  • 下载并安装<代码>编写器需要facebook/webdriver

  • &启动它<代码>java-jar selenium服务器单机版-#.jar

  • 并将其放入项目目录中


  • 用法
    使用Facebook\WebDriver\Firefox\FirefoxProfile;
    使用Facebook\WebDriver\Firefox\FirefoxDriver;
    使用Facebook\WebDriver\Remote\DesiredCapabilities;
    使用Facebook\WebDriver\Remote\RemoteWebDriver;
    //将此更改为xpi的路径
    $extensionPath=$this->container->getParameter('kernel.root_dir')。/../bin/selenium/quickjava-2.0.6-fx.xpi';
    //构建我们的firefox配置文件
    $profile=新的FirefoxProfile();
    $profile->addExtension($extensionPath);
    $profile->setPreference('thatonegydotnet.QuickJava.curVersion','2.0.6.1');
    $profile->setPreference('thatonegydotnet.QuickJava.startupStatus.Images',2);
    $profile->setPreference('thatonegydotnet.QuickJava.startupStatus.AnimatedImage',2);
    $profile->setPreference('thatonegydotnet.QuickJava.startupStatus.CSS',2);
    //$profile->setPreference('thatonegydotnet.QuickJava.startupStatus.Cookies',2);
    $profile->setPreference('thatonegydotnet.QuickJava.startupStatus.Flash',2);
    $profile->setPreference('thatonegydotnet.QuickJava.startupStatus.Java',2);
    //$profile->setPreference('thatonegydotnet.QuickJava.startupStatus.JavaScript',2);
    $profile->setPreference(“thatonegydotnet.QuickJava.startupStatus.Silverlight”,2);
    //创建DC
    $dc=DesiredCapabilities::firefox();
    $dc->setCapability(FirefoxDriver::PROFILE,$PROFILE);
    //创建我们的新驱动程序
    $driver=RemoteWebDriver::create($host,$dc);
    $driver->get($driver)http://stackoverflow.com');
    //HTML源代码
    $html=$driver->getPageSource();
    //Firefox应该是打开的,你可以看到没有图像或css被加载
    
    在此处查看更多首选项设置:
    被接受的答案对我也不适用。从kyrenia提到的“原因”链接中,我得知Firefox在第一次启动时会覆盖“permissions.default.image”首选项,我可以通过以下操作来防止这种情况:

    # Arbitrarily high number
    profile.set_preference('browser.migration.version', 9001)
    

    这似乎没什么问题,因为我在每次启动驱动程序时都创建了配置文件,所以实际上没有要迁移的内容。

    不幸的是,这个答案不再有效,因为firefox不再允许更改
    默认.image
    值-多亏alecxe为我指明了正确的方向-我要解决的代码如下。@kyrenia真的吗?我有Firefox 41,但仍然可以使用。@erm3nda-这肯定是我在[2015]7月左右遇到的一个问题,可能是Firefox 39-如果不再适用,那么通过
    Firefox\u配置文件禁用。set\u首选项('permissions.default.image',2)
    显然是一个更干净的解决方案。因为很明显,我对它进行了评论。。。一些懒惰的读者会认为使用扩展甚至不用尝试就更好了;Pinteresing Java扩展:我从来没有见过它。这应该是最好的答案!谢谢,这对我帮助很大。我不得不使用
    2.0.6
    version。最新版本(
    2.0.7
    )引发了一个
    AddonFormatError
    异常。这似乎与清单文件有关,但两者都是相同的。设置
    权限。默认值。image
    在Firefox 66.0.5上适用于我。我添加了image Block X,效果很好:)