как открыть новое окно с селеном Python - PullRequest
1 голос
/ 07 ноября 2019

Я делаю автоматизацию на веб-сайте.

Я выполняю поиск на этом сайте, и ваш результат возвращает ссылку, по которой я могу получить доступ, нажимаю на нее, чтобы открыть новую вкладку, но я хочу открыть новуюокно

это мой код для перехода по ссылке

WebDriverWait(self.browser, timeout=60).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="tabelaResultado"]/div[1]/table/tbody[1]/tr/td[1]/span/a'))).click()

Я пытался использовать сочетание клавиш SHIFT

WebDriverWait(self.browser, timeout=60).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="tabelaResultado"]/div[1]/table/tbody[1]/tr/td[1]/span/a'))).send_keys(Keys.SHIFT).click()

, но у меня ошибка результата

AttributeError: у объекта 'NoneType' нет атрибута 'click'

Есть ли способ настроить Chrome, чтобы при каждом нажатии на ссылку открывалось новое окно?

from selenium.webdriver.chrome.options import Options

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Я думаю, что вы должны написать это так, отправив Shift и Введите :

WebDriverWait(self.browser, timeout=60).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="tabelaResultado"]/div[1]/table/tbody[1]/tr/td[1]/span/a'))).send_keys(Keys.SHIFT,Keys.ENTER)
1 голос
/ 07 ноября 2019

send_keys() как не возвращаемое значение, поэтому вы получаете None. Вы можете сделать это с ActionChains

from selenium.webdriver import ActionChains

link = WebDriverWait(self.browser, timeout=60).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="tabelaResultado"]/div[1]/table/tbody[1]/tr/td[1]/span/a')))
ActionChains(driver).key_down(Keys.SHIFT, link).click().key_up(Keys.SHIFT).perform()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...