Поиск элемента By.ID, работающего, но не By.XPATH в SeleniumPython

Программы на Python
Ответить
Anonymous
 Поиск элемента By.ID, работающего, но не By.XPATH в Selenium

Сообщение Anonymous »

Я хочу автоматизировать очистку всех данных браузера в Firefox (

Код: Выделить всё

about:preferences#privacy
):
Изображение

При этом я столкнулся с проблемой при поиске по By.XPATH и By.ID. Рассмотрим следующий HTML: и следующий код Python:

Код: Выделить всё

driver = webdriver.Remote (
command_executor = SELENIUM_GRID_HUB + '/wd/hub',
options = opts)

driver.set_window_size (1280, 1024)

wait = WebDriverWait (driver, 10)

current_window_handle = driver.current_window_handle
driver.execute_script ("window.open('');")
wait.until (EC.number_of_windows_to_be (2))
for handle in driver.window_handles:
if handle != current_window_handle:
driver.switch_to.window (handle)
break

driver.get ('about:preferences#privacy')
wait.until (EC.element_to_be_clickable (
(By.ID, 'clearSiteDataButton'))).click ()

t = wait.until (EC.presence_of_element_located (
(By.ID, "dialogStack")))
print('00', t.get_attribute('outerHTML'))

print ('01', wait.until (EC.presence_of_all_elements_located (
(By.ID, "dialogTemplate"))))
print ('02', wait.until (EC.presence_of_all_elements_located (
(By.XPATH, "//vbox[@id='dialogTemplate']"))))
Приведенный выше фрагмент HTML взят из первой функции print(). Второй print() возвращает:

Код: Выделить всё

01 [, , ]
Однако третья печать завершается с ошибкой TimeoutException(). Почему не работает поиск по XPATH? Я протестировал приведенный выше HTML-код на соответствие выражению XPATH в https://codebeautify.org/Xpath-Tester, и он возвращает тот же ответ, что и поиск по By.ID.

Подробнее здесь: https://stackoverflow.com/questions/798 ... n-selenium
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»