Проблема с проверкой наличия текста элемента в Selenium
Как получить текст элемента на старнице?
Я попробовал несколько способов, но первые 2 передают недостоверную информацию о содержании, а третий выглядит, как костыль.
Цель: Выйти из браузера как только элемент перестанет быть пустым
Код:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from bs4 import BeautifulSoup
from time import sleep
def document_initialised(driver):
return driver.execute_script("return 'initialised'")
options = webdriver.ChromeOptions()
options.add_argument('--headless')
browser = webdriver.Chrome(chrome_options=options)
browser.get('https://www.deepl.com/translator#en/ru/Text')
WebDriverWait(browser, 10).until(document_initialised)
for i in range(10):
print('fnd:', browser.find_element(value='target-dummydiv').text)
print('src:', browser.execute_script("return document.getElementById('target-dummydiv');").text)
soup = BeautifulSoup(browser.page_source, 'lxml')
el = soup.find('div', id='target-dummydiv')
translation = str(el.text).strip()
print('bs4:', translation)
if translation != '':
break
sleep(0.5)
generated_html = browser.page_source
browser.quit()
Вывод:
fnd:
src:
bs4:
fnd:
src:
bs4:
fnd:
src:
bs4:
fnd:
src:
bs4: Текст