使用selenium永久/每次刷新注入的javascript

时间:2014-07-17 11:23:30

标签: javascript python selenium selenium-webdriver

我使用selenium webdriver进行半自动测试(使用python 3)。半自动化意味着,有一些例程,每次都会发生,但也有一些用户与浏览器的交互(可能的页面刷新,重定向,...)

我需要的是永久注入javascript代码,每次刷新时执行该代码。 Selenium execute_script生成匿名函数包装器,每次刷新都会丢失。

那么有没有办法创造这样的例行程序?可能(并且很好)解决方法是检测浏览器何时刷新(并且我不确定是否可能)以及每次再次注入js。

我不知道要创建任何浏览器扩展,因为js代码只是框架的一部分并且正在开发中。 (而且我还需要在Chrome和Firefox中执行此操作,这需要更多的工作来处理它)。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

我建议在页面重新加载后尝试执行时,使用try除了Selenium抛出的特定错误的功能。这样你就可以专注于修复抛出的错误。然后你可以执行javascript并实现递归编程来重新执行你正在尝试的最后一个语句。

    driver.execute_script("script goes here")
    #call function at thrown exception place in script

注册事件监听器可能允许您在事件发生时捕获它。这实际上取决于发生的事情以及通信的发生方式。以下是对此的参考:http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/events/WebDriverEventListener.html