在Selenium中加载页面时处理错误的JS

时间:2018-12-30 01:54:22

标签: javascript python selenium

我最近在抓取一个网站,并遇到了这个问题:

<img onerror="onErrorImg(this)" onload="onLoadImg(this);" src="example.png">

但是,相关站点未定义名为onErrorImg的函数,因此如果禁用了图像,则会在控制台中产生错误。在这种情况下,我想禁用图像,因为它是通过计量连接运行的。在不更改我的代码其余部分的情况下,如果在浏览器中启用了图像,则页面可以正确加载并且可以被抓取。

我将就此问题与网站所有者联系,但如果没有及时纠正,是否可以解决此类问题?如果可以在加载DOM时将JS脚本注入DOM中,则可以定义一个只是一个空块的函数,但除此之外,我不确定如何实现此功能。

编辑:我不确定为该页面创建DOM元素的过程是什么,但是如果您使用requests来获取URL,则它主要仅返回JS。这使我假设整个页面都是通过JS / AJAX生成的,因此出现此功能错误似乎会导致大部分页面无法加载。

1 个答案:

答案 0 :(得分:0)

尝试使用这种简单的解决方案,它将覆盖功能

has_many :comments  do
  def number_five
    if proxy_association.owner.is_a? Post
      #...
    end
  end
end

如果无法正常工作,则必须创建扩展以尽早覆盖该功能。