Как закрыть автоматически открытые вкладки в селене перед открытием следующей новой вкладки? - PullRequest
0 голосов
/ 10 апреля 2019

Собирая различные ссылки на странице, я нажимаю на них и собираю в суп.Теперь проблема в том, что ссылки открываются в новой вкладке.Я хочу закрыть вкладку, прежде чем код откроет следующую ссылку в новой вкладке.Ниже приведен фрагмент кода.Пожалуйста, помогите мне закрыть каждую вкладку после сбора супа.

Я использую Python 3.7 селеновый хромедривер

# collecting results from page 1 only.
candidate_name = []
candidate_links = driver.find_elements_by_xpath("//a[@data-tn-element='resume-result-link[]']")
for candidates in candidate_links:
    candidate_name.append(candidates.text)
    candidates.click()
    time.sleep(3)
    html_content = driver.page_source
    soup = BeautifulSoup(html_content, 'html.parser')
    text = soup.getText()

    candidates.send_keys(Keys.CONTROL+'w')
    #write it to a text file
    for i in candidate_name:
        path = r'c:/users/user/desktop/resumes1/'+ i
        with open(path, 'w', encoding='utf-8') as file:
            file.write(text)

time.sleep(5)
assert "No results found." not in driver.page_source
driver.quit()

1 Ответ

0 голосов
/ 10 апреля 2019

Простой код работал для меня, как показано ниже.Закрытые вкладки перед открытием следующей.

# switch to the tab
driver.switch_to.window(driver.window_handles[-1])

# do whatever in the tab
time.sleep(5)

# close the tab
driver.close()

#switch back to the main window again
driver.switch_to.window(driver.window_handles[0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...