#python #selenium #selenium-webdriver #xpath #file-upload
#python #селен #selenium-webdriver #xpath #загрузка файла
Вопрос:
Я столкнулся с проблемой загрузки изображения в Selenium webdriver на Python, я проверил HTML и использовал полный Xpath для поиска элемента, но это не сработало. Я все еще получаю эту ошибку selenium.common.exceptions.Исключение NoSuchElementException: Сообщение: нет такого элемента: не удалось найти элемент: {«метод»:»xpath»,»селектор»:»/html/body/div [2]/ div / div [4]/ div [2]/ div / div [2]/ div / div /div 1 / div / table/tbody/tr / td/table/tbody/tr / td/div[3] / div»}
Это мой код:
#step 2 upload photo
upload_photo = driver.find_element_by_xpath('/html/body/div[2]/div/div[4]/div[2]/div/div[2]/div/div/div[1]/div/table/tbody/tr/td/table/tbody/tr/td/div[3]/div')
upload_photo.send_keys("/Users/Documents/2020//CASINO/668X593.png")
time.sleep(2)
И это HTML-снипет:
<div class="ve-Fc-Ye-Qd-Jo">Drag photos and videos here</div>
<div class="ve-Fc-Ye-Qd-Io">Or, if you prefer...</div>
<div id=":f"><div role="button" class="a-b-c d-u d-u-F" tabindex="0" style="user-select: none;">Select photos and videos from your computer
</div>
</div>
Комментарии:
1. поделитесь html dom, чтобы мы могли помочь вам написать правильный xpath
Ответ №1:
Попробуйте следующее.Чтобы получить div внутри div id =’:f’.
upload_photo = driver.find_element_by_xpath("//*div[@id=':f']/div")
upload_photo.send_keys("/Users/Documents/2020/CASINO/668X593.png")
Комментарии:
1. Я только что попробовал, у меня снова эта ошибка: selenium.common.exceptions. InvalidSelectorException: Сообщение: недопустимый селектор: не удалось найти элемент с выражением xpath //* div [@id=’:f’]/ div из-за следующей ошибки: SyntaxError: не удалось выполнить ‘evaluate’ для ‘Document’: Строка ‘//* div [@id=’:f’]/ div’ не является допустимым выражением XPath.
Ответ №2:
Попробуйте найти элемент по идентификатору:
upload_photo = driver.find_element_by_id(":f")
Вы также можете использовать ожидания для решения следующих проблем: если элемент еще не присутствует в DOM.
Подробнее об этом здесь: