python selenium phantomJS新标签无效

时间:2016-02-28 01:30:44

标签: python selenium phantomjs

我正在使用Selenium和PhantomJS webdriver,我发现我无法使用这个webdriver打开一个新标签。我正在使用标准线:

driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't') 

我使用的是Mac。

我也尝试过使用Firefox,它可以运行。

任何有关使用PhantomJS的帮助都将不胜感激!

1 个答案:

答案 0 :(得分:6)

我刚才遇到了同样的问题,在我看来,我找到了一种比试图将密钥发送到PhantomJS更好的方法。

请记住,PhantomJS是一个无头浏览器 - 没有为您的操作系统呈现实际窗口以通过键盘快捷键访问。

话虽这么说,每次打开一个新标签/窗口时,它都会被添加到驱动程序的窗口句柄中。每个窗口句柄都有唯一的标识符。

您可以轻松切换到该窗口的ID(并返回原​​始窗口处理程序 - 如果您愿意)。

示例

# Click a link that opens a new tab ...

# You'll see there's a new window handle!
print(driver.window_handles)

# Switch to the new window handle in the window_handles list
driver.switch_to.window(driver.window_handles[1])

# Switch back to the original window
driver.switch_to.window(driver.window_handles[0])

然后检查司机的current_url以确保你在正确的页面上是微不足道的,即:

assert "www.stackoverflow.com" in driver.current_url

这个答案对我有帮助:https://stackoverflow.com/a/29125205/295246