Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Selenium-我可以只对几个URL禁用javascript吗?_Python_Firefox_Webdriver_Selenium Webdriver - Fatal编程技术网

Python Selenium-我可以只对几个URL禁用javascript吗?

Python Selenium-我可以只对几个URL禁用javascript吗?,python,firefox,webdriver,selenium-webdriver,Python,Firefox,Webdriver,Selenium Webdriver,我只需要对几个URL禁用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://my

我只需要对几个URL禁用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()
实例不是一个好主意


解决这个问题的最好办法是什么?蒂亚

将测试分为两大组。一个组在禁用JS的情况下运行所有测试,另一个组在启用JS的情况下运行

这样,您只需支付初始设置成本两次(而不是每次测试一次)

或者,您可以以这样一种方式组织JS,即所有内容都通过一个全局符号(jQuery使用
$

现在您需要两个框架实现。一个是普通实现,另一个是模拟/无操作实现,当调用它的函数时,它什么都不做

然后可以使用
browser.executeScript()
将其中一个实现分配给全局符号

不过,有几个缺点:

  • 并不是所有的框架都支持这个方案
  • 您可能需要重写大量现有代码才能使其正常工作
  • 如果将脚本附加到DOM节点,则如果它们保留对内部事物的引用,则可能会像以前一样继续工作

  • 因此,我建议尝试“两组”方法:-)

    是否需要在单个测试中启用/禁用javascript?或者每个url都有不同的测试?