Застрял в проблеме, псевдокод: -
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 должно быть достаточно для этого.
Но так как я получаю несвежую ошибку Элемента, я думаю, что должен, но у меня возникла путаница в этом отношении.
Пожалуйста, помогите с путаница и решение, если это возможно. Спасибо