我只需要为几个网址禁用javascript,即:
browser.get('http://mydomain.com/page1')
# some actions with JS off
browser.get('http://mydomain.com/page2')
# some actions with JS on
browser.get('http://mydomain.com/page3')
# some actions with JS on
browser.get('http://mydomain.com/page4')
# some actions with JS off
我知道我可以在关闭JS的情况下将firefox配置文件传递给webdriver.Firefox()
,但这适用于所有页面。我认为为每个页面创建新的webdriver.Firefox()
实例并不是一个好主意。
解决这个问题的最佳方法是什么? TIA!
答案 0 :(得分:0)
将您的测试分成两大组。一组运行所有测试,禁用JS,另一组运行JS。
这样,您只需支付两次初始设置费用(而不是每次测试一次)。
或者,你可以组织你的JS,使一切都通过一个全局符号(jQuery使用$
)。
现在您需要两个框架实现。一个是正常的实现,另一个是mock / no-op实现,当调用它的函数时它根本不执行任何操作。
然后,您可以使用browser.executeScript()
将其中一个实现分配给全局符号。
但有一些缺点:
所以我建议尝试“两组”方法: - )