我正在使用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');")
答案 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])