Selenium get_attributed ('innerHTML') преобразует значения с точкой в ​​значения с запятой - PullRequest
0 голосов
/ 05 июля 2019

После выбора тега при попытке получить содержимое HTML. он преобразует такие значения, как 0,102 в 0,102. Есть некоторые значения, такие как 1,203, они остаются неизменными. но тип с плавающей точкой неправильно конвертируется.

Я новичок, поэтому я не очень старался

element = driver.find_element_by_css_selector("div.widget-equity-technical-key-data table")
html = element.get_attribute('innerHTML')

скажем, столбец со значениями 1,201 и 0,102 ожидается как минимум 1201 и 0,102, но фактический результат равен 1,201 и 0,102

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Соответствующий HTML был бы полезен для устранения проблемы.Однако для извлечения innerHTML с использованием Selenium вам нужно вызвать WebDriverWait для visibility_of_element_located(), и вы можете использовать любое из следующих решений:

  • Использование CSS_SELECTOR:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.widget-equity-technical-key-data table"))).get_attribute('innerHTML'))
    
  • Использование XPATH:

    print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='widget-equity-technical-key-data']//table"))).get_attribute('innerHTML'))
    
  • Примечание : необходимо добавить следующий импорт:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
0 голосов
/ 05 июля 2019

post findElement метод, вы можете использовать метод replace для строк, а затем выполнить assert

для значения 1,201

String s1 = s1.replace(',', '');

для значения 0,102

String s1 = s1.replace(',', '.');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...