ChromeDriver .click вызывает ошибки при взаимодействии с функцией onclick()Jquery

Программирование на jquery
Ответить
Anonymous
 ChromeDriver .click вызывает ошибки при взаимодействии с функцией onclick()

Сообщение Anonymous »

Я пытаюсь нажать на элемент ниже, используя ChromeDriver .click(). Это один из столбцов строки таблицы, содержащей счета. Вот как я пытаюсь нажать на него в чистом виде. Я также пробовал щелкнуть прямо по элементу с помощью wait_element = data_bill[5].

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

bills_xpath = './/tr[@class="rowb"]'
bills = group.find_elements(By.XPATH, bills_xpath)
for j, bill in enumerate(bills):
data_bill = bill.find_elements(By.TAG_NAME, 'td')
wait_element = data_bill[5].find_element(By.XPATH, './/div//span')
wait_element.click()
for window in all_windows:
if window != original_window:
d.switch_to.window(window)
#get needed data from this window#
d.close()
d.switch_to.window(original_window)

При выполнении вручную открывается новое окно с дополнительной информацией о счете, представленной этой строкой данных.
Однако при использовании Щелкнув ChromeDriver, я запускаю следующее динамическое отображение ошибок в HTML-коде целевой страницы:

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


Loading...



Я также получаю эти три ошибки, которых нет при нажатии на ссылку вручную.
скриншот сообщений об ошибках
Из того, что я смогли собрать, похоже, что использование .click вызывает ошибки в jquery (возможно, вызов Ajax), но я недостаточно знаком с jquery, чтобы разобраться в этом. Кто-нибудь знает, почему возникают эти ошибки, или имеет дополнительную информацию о том, почему Chromedriver .click работает иначе, чем щелчок вручную?
Я попробовал настроить параметры ChromeDriver с помощью следующих команд:

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

chrome_options = Options()
chrome_options.add_argument("--disable-extensions")
chrome_options.page_load_strategy = 'eager'
d = webdriver.Chrome(service=Service(executable_path=driver_path), options=chrome_options)
Я также пробовал различные варианты ожидания загрузки страницы и завершения процессов Ajax. Страница загружается успешно, поскольку то, что я вижу, должно отображаться, но, возможно, функциям jquery не хватает времени для завершения?

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

wait = WebDriverWait(d, 15)
wait_element = data_bill[5].find_element(By.XPATH, './/div//span')
#wait.until(ec.element_to_be_clickable((By.XPATH,wait_element)))
is_ajax_complete = "return jQuery.active == 0"  # This works for jQuery-based websites
wait.until(lambda d: d.execute_script(is_ajax_complete))
wait_element.click()
wait.until(lambda driver: driver.execute_script('return document.readyState') == 'complete')
wait.until(ec.presence_of_element_located((By.XPATH, '//*[@id="billableType"]/div[1]/label[1]/input')))
Я пытался передать токен авторизации и ждать, пока элемент станет доступен для клика, но безуспешно.

Подробнее здесь: https://stackoverflow.com/questions/792 ... k-function
Ответить

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

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

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

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

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