селен - открытие новой вкладки с одного, получение текста, невозможность go назад - PullRequest
0 голосов
/ 09 апреля 2020

Застрял в проблеме, псевдокод: -

def get_text2(x) :
    print('Opening and switching to new tab')
    actions.key_down(Keys.CONTROL).click(name).key_up(Keys.CONTROL).perform()
    browser.switch_to.window(browser.window_handles[-1])

    try:
        WebDriverWait(browser, 30).until(EC.visibility_of_element_located((By.XPATH, "//a[@class='ui_tab social-profile-ProfileTab__ui_tab--3f5yN']")))
    except TimeoutException:
        browser.quit()

    * Do some work *

    print('Switching Back')
    browser.switch_to.window(browser.window_handles[0])
    time.sleep(20) ##so that the browser's DOM could update

def get_text1() :

    try:
        WebDriverWait(browser, 30).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='hotels-community-tab-common-Card__card--ihfZB hotels-community-tab-common-Card__section--4r93H']")))
    except TimeoutException:
        browser.quit()

    y = browser.find_elements_by_xpath("//div[@class='hotels-community-tab-common-Card__card--ihfZB hotels-community-tab-common-Card__section--4r93H']")
    for items in y :
        x = items.find_element_by_xpath('.//a[@class="ui_header_link social-member-event-MemberEventOnObjectBlock__member--35-jC"]')
        get_text2(x)


browser.get(main_page_link)
get_text1()

, вкратце, в методе get_text1 я пытаюсь получить доступ к ссылке и получить несколько элементов DOM (которые являются ссылками на другие страницы) с помощью тот же xpath, затем перебирая эти элементы и передавая его другому методу - get_text2. В этом методе откройте ссылку в новой вкладке, затем получите текст и go вернитесь на предыдущую вкладку, чтобы другой элемент в методе get_text1 мог выполнять итерацию (или браузер мог загрузить DOM предыдущей страницы).

My путаница заключается в том, что нам действительно нужно go возвращаться к предыдущей вкладке каждый раз, когда мы хотим перебрать ссылки, представленные на одной странице? Причина, по которой я запутался, заключается в том, что, поскольку все ссылки теперь находятся в переменной y, почему нам нужно получить DOM из браузера, переключившись обратно на главную вкладку (содержащую все ссылки), чтобы перебрать y? Я думаю, что переменной y должно быть достаточно для этого.

Но так как я получаю несвежую ошибку Элемента, я думаю, что должен, но у меня возникла путаница в этом отношении.

Пожалуйста, помогите с путаница и решение, если это возможно. Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...