Selenium在页面加载时覆盖javascript

时间:2016-05-23 07:11:07

标签: python selenium selenium-webdriver

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

type MyType int

func (m MyType) MyFunc1() {
    fmt.Println("Hello MyFunc1")
}

func (m MyType) MyFunc2() {
    fmt.Println("Hello MyFunc2")
}

func (m MyType) MyFunc3() {
    fmt.Println("Hello MyFunc3")
}

func main() {
    v := reflect.ValueOf(MyType(0))
    for k := 1; k <= 3; k++ {
        v.MethodByName(fmt.Sprintf("MyFunc%d", k)).Call(nil)
    }
}

我用

渲染该页面
<script>window.print;</script>

我想用这个替换该语句:

driver.get(url_link)

因此,打印对话框没有出现。并且window.print = (){}; 在页面加载时不会执行任何操作。

window.print

我尝试在driver.execute_script("window.print = (){};") 语句之前和之后添加上述语句,但它无效。

我怎么能跳过它?

1 个答案:

答案 0 :(得分:0)

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

为了解除页面加载,您可以在接到电话后执行sendKeys for "Esc"个字符。