【问题标题】:Selenium overwrite javascript on page loadSelenium 在页面加载时覆盖 javascript
【发布时间】:2016-09-19 23:03:24
【问题描述】:

我有一个带有脚本 javascript 语句的页面:

<script>window.print;</script>

我用

渲染那个页面
driver.get(url_link)

我想用这个替换那个语句:

window.print = (){};

因此,打印对话框不会出现。 window.print 在页面加载时不做任何事情。

driver.execute_script("window.print = (){};")

我尝试在driver.get 语句之前和之后添加上述语句,但它不起作用。

如何跳过?

【问题讨论】:

  • 我猜这不是最好的方法,但请尝试driver.execute_script('document.getElementsByTagName('script')[n].innerHTML="window.print = (){};";'),其中n 是列表中&lt;script&gt; 元素的数量

标签: python selenium selenium-webdriver


【解决方案1】:

从逻辑上讲,这是不可能的,因为您想限制在页面加载时进行的 js 函数调用,因为执行脚本或任何其他命令将在页面加载后执行。

为了在页面加载时关闭,您可以在 get call 后执行sendKeys for "Esc" char。

【讨论】:

  • 你能建议我如何跳过打印对话框吗?
猜你喜欢
  • 2011-05-21
  • 2019-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多