Python – Selenium:提交表单而不打开新选项卡或新窗口

我有 :

driver = webdriver.Firefox()

我有一些网址:driver.get(url)

我有一个我要提交的表格:

elt = driver.find_element_by_class_name('special_class')
driver.find_element_by_xpath('//button').click()

这将打开一个新窗口,我希望一切都在一个窗口中发生.

我可能需要多次提交类似的东西,然后解析输出.

有没有办法留在同一个窗口?我不想打开很多窗户.

提前致谢.

最佳答案 如果按钮在表单提交后打开新窗口,我担心没有什么可以做的.我想到的只是使用像PhantomJS这样的无头浏览器 – 因为你正在进行网络爬行,你也可以欣赏速度.请参阅适用于Python的
this教程.

但实际上我记得有一个解决方法,你可以将Firefox browser.link.open_newwindow设置为1,这应该会导致每个新窗口在当前窗口中打开.但是我不确定这是否适用于HTML表单.

fp = webdriver.FirefoxProfile()
fp.set_preference("browser.link.open_newwindow", 1)
browser = webdriver.Firefox(firefox_profile=fp)

请参阅此功能的参考资料here.

点赞