Я пытаюсь перебрать тег li на https://game -rainbow6.ubi.com / en-us / uplay / player-statistics / dbd1cef3-d69d-4296-a235-ae8d7d70363f / multiplayer на вкладке оператора (выбор вкладки не меняет ссылку, извините) у меня нет проблем с переходом на вкладку, но когда я получаю тег li и перебираю его, чтобы получить все четыре веб-элемента, которые мне нужны (имя, времяпроиграл, k / d, w / l) пропускает первые два оператора в списке.Остальное печатает просто отлично.Я попытался и неявно ждать, чтобы просто посмотреть, не загружались ли первые два не так быстро, но это не сработало, затем я попробовал явное ожидание, которое есть в коде прямо сейчас, но оно каждый раз истекает.Я также попытался найти элементы по xpath.Это полный xpath к первому имени оператора
//*[@id="section"]/div/div/div[2]/div/div[1]/div/div/div/div/article[3]/div[1]/div/div/div/nav/ul/li[1]/div/div[1]/div[1]/div/div[1]/p
Я попытался сделать
.//div/div[1]/div[1]/div/div[1]/p
в цикле for, поскольку мне просто был нужен хвостовой конец пути для каждого элемента,но он по-прежнему пропускает первых двух операторов.
Я создал тестовую учетную запись, чтобы люди могли правильно просматривать html:
email = UbiTest1337@gmail.com
pwd = Password1
def scrapeOperatorStats(self):
#navigate to operator tab
operator_tab = self.driver.find_element_by_xpath('//* [@id="section"]/div/div/div[2]/div/div[1]/div/div/div/div/article[1]/div[2]/div/div[1]/button')
self.driver.execute_script("arguments[0].click();", operator_tab)
#wait for operator stats elements to load
WebDriverWait(self.driver,10).until(EC.text_to_be_present_in_element((By.XPATH, '//*[@id="section"]/div/div/div[2]/div/div[1]/div/div/div/div/article[3]/div[1]/div/div/div/nav/ul/li[1]/div/div[1]/div[1]/div/div[1]/p')))
#Get the li tag that is a list of all operators and thier respective stats
operator_list_set = self.driver.find_element_by_xpath('//*[@id="section"]/div/div/div[2]/div/div[1]/div/div/div/div/article[3]/div[1]/div/div/div/nav/ul')
operators = operator_list_set.find_elements_by_tag_name('li')
for operator in operators:
operator_stats = operator.find_elements_by_tag_name('p')
for stat in operator_stats:
print(stat.text)