使用可变链接在浏览器中打开选项卡

时间:2018-06-07 14:18:10

标签: python-3.x selenium-webdriver

我正在使用python和selenium,试图打开一个新选项卡。 send_keys函数没有打开选项卡,但execute_script没有。我的问题是我有一个保存在变量中的URL,我需要将其传递给脚本,但是我收到了错误。

代码:

src = 'http://yahoo.com'
driver.execute_script("window.open(" + src + ",'_blank');")

错误讯息:

selenium.common.exceptions.WebDriverException: Message: unknown error: Runtime.evaluate threw exception: SyntaxError: missing ) after argument list

也尝试过,不起作用:

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

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

是否有效,但网址是硬编码的:

driver.execute_script("window.open('http://www.google.com/','_blank');")

2 个答案:

答案 0 :(得分:0)

这有效:

driver.execute_script('''window.open('',"_blank");''')
driver.switch_to.window(driver.window_handles[-1])
driver.get(src)

答案 1 :(得分:0)

您可以使用format插入变量。

一个例子:

driver = webdriver.Chrome(executable_path="/tmp/chromedriver")

link = 'http://example.com'
driver.execute_script('window.open("{}","_blank");'.format(link))
driver.switch_to.window(driver.window_handles[-1])