#python #django #selenium #dictionary #selector
Вопрос:
Я только что обновил selenium в своем приложении django на PythonAnywhere. Это мой код:
from selenium import webdriver
def Synonym():
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--disable-gpu")
browser = webdriver.Chrome(options=chrome_options)
browser.get("https://www.synonym.com/synonyms/test")
test = browser.find_element_by_class_name("logo").text
browser.quit()
return test
Но это выдает ошибку:
Ошибка атрибута: объект ‘dict’ не имеет атрибута ‘text’
Когда я беру его без .text, это то, что он мне дает:
{'ELEMENT': '0.3567871003333163-1'}
Я использую платную учетную запись и должен иметь доступ к любому сайту. Примечание: есть ли способ запретить selenium создавать файлы и папки /tmp/?
Спасибо!
Комментарии:
1. Это странно, этого не должно было произойти. Пожалуйста, поставьте задержку
time.sleep(5)
раньшеtest = browser.find_element_by_class_name("logo").text
и посмотрите, работает ли это.2. Я добавил
time.sleep(5)
и все еще получаю ошибку.3. Я использую Pycharm, и у меня есть этот код
link = "https://www.synonym.com/synonyms/test" driver.get(link) test = driver.find_element_by_class_name("logo").text print(test)
, и я получилSYNONYM.COM
его в качестве вывода.4. Просто запустите свой код, используя новейший системный образ на PythonAnywhere и Python 3.8, и получите ‘SYNONYM.COM ‘в качестве возвращаемого значения.
5. Это сделало это!!! Большое вам спасибо!
Ответ №1:
Исправление для меня в PythonAnywhere заключалось в обновлении образа системы: https://help.pythonanywhere.com/pages/ChangingSystemImage
Ответ любезно предоставлен caseneuve!