Невозможно получить значение элемента в HTML в Python и Selenium.Python

Программы на Python
Ответить
Anonymous
 Невозможно получить значение элемента в HTML в Python и Selenium.

Сообщение Anonymous »

Я пытаюсь напечатать DE(ГЕРМАНИЯ) и IN(ИНДИЯ) в список, используя class="lnsTableCell lnsTableCell--left" из HTML-кода ниже, чтобы я мог создать CSV позже.




IN(INDIA)

Row: 2; Column: 1

...




DE(GERMANY)

Row: 3; Column: 1


Это мой код:
def capture_data_1():
url_scrape = "https://kibana-xxyyzzz.com/app/dashboar ... 5d2c94?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-1w,to:now))"
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-dev-shm-usage') # moves to /tmp
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=chrome_options)
driver.get(kibana_eu_prd.login_url)
wait = WebDriverWait(driver, 20)
wait.until(EC.element_to_be_clickable((By.NAME, "username"))).send_keys(kibana_user_id)
wait.until(EC.element_to_be_clickable((By.NAME, "password"))).send_keys(kibana_user_pass)
submit_button = wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "euiButton__text")))
submit_button.click()
time.sleep(5)

driver.get(url_scrape)
# countries = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.lnsTableCell.lnsTableCell--left"))) # Works but only print INDIA
countries = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="i19971251-9fb6-11ef-b33e-c91f069ea574"]/div/div/div/div[2]/div/div/div/div')))
print(countries.text)
for country in countries:
print(country.text)
capture_data_1()

Я получаю следующую ошибку:
Traceback (most recent call last):
File "data_scrape.py", line 89, in capture_data_1
countries = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="i19971251-9fb6-11ef-b33e-c91f069ea574"]/div/div/div/div[2]/div/div/div/div')))
File "/var/lib/jenkins/.local/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 105, in until
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
Stacktrace:
#0 0x5609b1b7c10a
#1 0x5609b1697460
#2 0x5609b16e3f96
#3 0x5609b16e4221
#4 0x5609b17295d4
#5 0x5609b170803d
#6 0x5609b1726af6
#7 0x5609b1707db3
#8 0x5609b16d6c10
#9 0x5609b16d7bee
#10 0x5609b1b4839b
#11 0x5609b1b4c338
#12 0x5609b1b35ebc
#13 0x5609b1b4ceb7
#14 0x5609b1b1b10f
#15 0x5609b1b6a828
#16 0x5609b1b6a9f0
#17 0x5609b1b7af86
#18 0x7f40f2386609 start_thread

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "data_scrape.py", line 109, in
capture_data_1()
File "data_scrape.py", line 104, in capture_data_1
raise Exception(error)
Exception: Message:
Stacktrace:
#0 0x5609b1b7c10a
#1 0x5609b1697460
#2 0x5609b16e3f96
#3 0x5609b16e4221
#4 0x5609b17295d4
#5 0x5609b170803d
#6 0x5609b1726af6
#7 0x5609b1707db3
#8 0x5609b16d6c10
#9 0x5609b16d7bee
#10 0x5609b1b4839b
#11 0x5609b1b4c338
#12 0x5609b1b35ebc
#13 0x5609b1b4ceb7
#14 0x5609b1b1b10f
#15 0x5609b1b6a828
#16 0x5609b1b6a9f0
#17 0x5609b1b7af86
#18 0x7f40f2386609 start_thread

Я попробовал следующее, но это привело только к другим типам ошибок:
# countries = driver.find_element(By.CLASS_NAME, "lnsTableCell.lnsTableCell--left")
# countries = driver.find_elements(By.XPATH, '//*[@id="i19971251-9fb6-11ef-b33e-c91f069ea574"]/div/div/div/div[2]/div/div/div/div')
# countries = driver.find_elements(By.CSS_SELECTOR, ".lnsTableCell.lnsTableCell--left")
# print(wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.lnsTableCell.lnsTableCell--left"))).text)


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

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

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

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

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

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