открыть переменную 'href' в новой вкладке - PullRequest
0 голосов
/ 23 января 2019

Я использую селен и Chrome WebDriver с Python.

Я пытаюсь сохранить 'href' внутри переменной ('ссылка' для этого примера) и открыть его в новой вкладке.

Я знаю, как открыть выделенный веб-сайт в новой вкладке следующим образом:

driver.execute_script("window.open('http://www.example.com', 'newtab')")

, но при использовании скрипта windows.open допускается только прямой текст (насколько я знаю), а не переменные.

Вот код:

link = driver.find_element_by_class_name('asset-content').find_element_by_xpath(".//a[@class='mr-2']").get_attribute("href") #assigning 'href' into link variable. works great. 
driver.execute_script("window.open(link, 'newtab')") #trying to open 'link' in a new tab

Ошибка:

unknown error: link is not defined

Любой другой способ открытьпеременная 'link' в новой вкладке?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Вы передаете строку в execute_script, поэтому передайте не «ссылку» буквально, а значение из ссылки (сцепление):

driver.execute_script("window.open('"+link+"','icoTab');")

Еще один способ открыть вкладку - отправить CTRL + Tв браузер:

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

Как уже упоминалось, вы можете найти больше здесь 28431765 / open-web-in-new-tab-selenium-python

0 голосов
/ 23 января 2019

Передача параметра в скриптах не обрабатывается как URL, чтобы заставить его попробовать этот.Это работает для меня.

driver.execute_script("window.open('{},_blank');".format(link))

Пожалуйста, дайте мне знать, если это работает.

...