Для вашего массива длина массива равна 3 (например, name.length = 3). Но поскольку он хранит элемент, начинающийся с индекса 0, он имеет максимальный индекс 2.
Итак, вместо 'i ** & lt; = name.length' вы должны написать 'i & lt; ** name.length' чтобы избежать «ArrayIndexOutOfBoundsException».
В соответствии с HTML вы указали, что связанный function
внутри <script>
вызывает:
jQuery('<div> DIV 2 </div>', {id: 'id_2', }).appendTo('#content');
Итак, когда веб-страница полностью завершит загрузку элемента будет присутствовать в HTML DOM как:
('<div> DIV 2 </div>', {id: 'id_2', })
Здесь вы можете найти обсуждение на . У нас есть какое-либо общее функционирование, чтобы проверить, полностью ли загружена страница Selenium
Наконец, вы можете дождаться любого из следующего состояния элемента, вызывающего WebDriverWait следующим образом:
presence_of_element_located(locator)
: myElement = WebDriverWait(driver, 20).until(expected_conditions.presence_of_element_located((By.CSS_SELECTOR, "div#id_2")))
visibility_of_element_located(locator)
myElement = WebDriverWait(driver, 20).until(expected_conditions.visibility_of_element_located((By.CSS_SELECTOR, "div#id_2")))
вместо:
myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.ID, 'id_2')))
попробуйте следующее:
myElem = WebDriverWait(browser, delay).until(EC.presence_of_element_located((By.XPATH, ".//*[@id='content']/div[2]")))