我正在使用Selenium和PhantomJS webdriver,我发现我无法使用这个webdriver打开一个新标签。我正在使用标准线:
driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't')
我使用的是Mac。
我也尝试过使用Firefox,它可以运行。
任何有关使用PhantomJS的帮助都将不胜感激!
答案 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