Мне трудно найти, как реализовать неявное ожидание, когда у меня есть строковая переменная в xpath.
В настоящее время я использую 10-секундное явное ожидание, прежде чем перейти к этому фрагменту, и он работает хорошо, но я не хочу ждать 10 секунд, если мне не нужно (обычно это около 6 секунд для загрузки)
try:
link = driver.find_element_by_xpath("//tr[@data-recordindex = '"+str(i)+"']//img[contains(@class,'x-tree-expander')]")
datarow = driver.find_element_by_xpath("//tr[@data-recordindex = '"+str(i)+"']")
print("Level: " +str(level)+ ": " +datarow.text)
link.click()
except NoSuchElementException:
not_a_point = False
Я пробовал это, и он не ждал, просто переходил по следующей ссылке, а не по той, которую я жду появления. Полагаю, я не могу просто поместить в By.XPATH то же самое, что и find_element_by_xpath()
.
try:
link = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//tr[@data-recordindex = '"+str(i)+"']//img[contains(@class,'x-tree-expander')]")))
datarow = driver.find_element_by_xpath("//tr[@data-recordindex = '"+str(i)+"']")
print("Level: " +str(level)+ ": " +datarow.text)
link.click()
except NoSuchElementException:
not_a_point = False