python - Selenium 不会在新标签页中打开新 URL(Python 和 Chrome)

标签 python google-chrome selenium

我想使用 Selenium WebDriver 和 Python 在不同的选项卡中打开相当多的 URL。

我不确定出了什么问题:

driver = webdriver.Chrome()
driver.get(url1)
time.sleep(5)
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL+'t')
url2 = 'https://www.google.com'
driver.get(item2)

我查阅了教程,在我看来这段代码应该可以满足我的要求。实际发生的是浏览器打开,url1 按原样打开,新选项卡按原样打开,但是 url2 然后加载到原始选项卡而不是新选项卡(即使新选项卡看起来是活跃的)。

(我正在使用 Chrome,因为在使用 Firefox 时我根本无法让它加载任何 URL。Firefox 打开但没有获得请求的 URL。我试图找到解决方案但无济于事。)

我可以在我的代码中进行任何更改以使新 URL 在新选项卡中打开吗?

感谢您的帮助!

最佳答案

这是一个简单的方法,独立于平台:

代码:

driver.execute_script("window.open('http://google.com', 'new_window')")

切换回原来的标签页:

代码:

driver.switch_to_window(driver.window_handles[0])

检查当前标题以确保您在正确的页面上:

代码:

driver.title

对于其他一切,玩得开心!

关于python - Selenium 不会在新标签页中打开新 URL(Python 和 Chrome),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37088589/

相关文章:

python - GDAL WriteArray 问题

javascript - 如何让浏览器(IE 和 Chrome)在脚本之前请求图像?

java - 抑制 Cucumber 报告中的 Java 异常堆栈跟踪

javascript - 如何使用 Selenium 或 Protractor 获取 HTML 中嵌套元素的文本以实现自动化?

python - 没有名为 openai 的模块

python - 根据列中的值组合 Pandas 中的两行并创建一个新类别

javascript - 为什么在使用分号时此 JavaScript 不被解释为代码块?

javascript - 是否可以从扩展程序调用父网页的 iframe 中的函数

java - 如何在只有一个 web 驱动程序实例的 testng 套件中运行多个测试类?

python - 选择数据框中具有最接近值的行