#python #selenium
#python #селен
Вопрос:
Я пытаюсь щелкнуть ссылку на форуме, используя Selenium, но мне нужно дождаться загрузки страницы, поэтому я подумал, что лучшим способом было использовать WebDriverWait. Это мой код, который я использовал для его тестирования:
driver.get("https://testocolo.forumcommunity.net")
#First click, working
driver.find_element_by_xpath('//a[@href="' "/?f=9087616" '"]').click()
try :
element = WebDriverWait(driver, 2).until(
EC.presence_of_element_located(By.XPATH, '//a[@href="' "/?t=61904616" '"]')
)
element.click()
except :
print("NO")
Это элемент
<a href="/?t=61904616" title="discussione inviata il: 28/10/2020, 19:58">Brotha</a>
Цикл try except заканчивается каждый раз, когда выводится «НЕТ».
До этого я пытался найти по LINK_TEXT вместо этого с помощью «Brotha», но ни в коем случае не работает. Где я делаю неправильно?
Комментарии:
1. Увеличьте время с 2 до 20-30 или что-то в этом роде.
Ответ №1:
xpath вы можете попробовать
//a[contains(@tittle,'discussione inviata il')]
или
//*[text()=’Brotha’]
Следующий вариант, который вы можете проверить, находится ли этот элемент в iframe?
WebDriverWait(driver, 30).until(
EC.element_to_be_clickable((By.XPATH, "//*[text()='Brotha']")))
Комментарии:
1. Это не в iframe, и, к сожалению, ни один из этих вариантов не работает. Если я набираю driver.find_element_by_xpath(‘//a[@href=»‘ «/?t=61904616″ ‘»]’), он находит нужный элемент, и я могу щелкнуть по нему, но когда я использую WebDriveWait этого не делает.
2. используйте element_to_be_clickable вместо presence_of_element_located и попробуйте.
3. если он все еще не работает, вам необходимо предоставить дополнительную информацию, такую как URL или соответствующие детали DOM, для дальнейшего изучения
4. Я перепробовал все, что вы предложили, но ничего. Я обновляю свой первоначальный вопрос дополнительной информацией и ссылкой на форум
5. //* [text()=’Brotha’] xpath работает для меня. Пожалуйста, проверьте