Код: Выделить всё
TG
Код: Выделить всё
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)
Код: Выделить всё
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
Мобильная версия