Python Selenium возвращает None для всплывающего окна, несмотря на то, что элемент виден на экране и обнаружен с JS в chrome dev - PullRequest
0 голосов
/ 03 марта 2020
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions 
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome('pathhere')
driver.implicitly_wait(2)

# finds email in 'To' box of the 'New Message on Gmail'
emailaddress = driver.find_element_by_css_selector('div.vT') 
hov = ActionChains(driver).move_to_element(emailaddress)
hov.perform() # hover to item so popup box opens

conds = expected_conditions.presence_of_element_located((By.CSS_SELECTOR, 'div.OXtb5c'))
element = WebDriverWait(driver,10).until(conds)

# note that the two following return none also
# element = driver.execute_script("return $('div.OXtb5c');")
# element = driver.execute_script("return document.querySelector('div.OXtb5c');")

print(element)
None

Я пытаюсь извлечь изображения из писем Gmail с python и селеном. Мне нужно навести курсор на адрес электронной почты, чтобы всплыло окно. Тогда я думаю, что все, что мне нужно сделать, это получить элемент, который мне нужен, в данном случае, div.OXtb5 c, но по какой-то причине все возвращает None, JS executor, а также обычный css_selector. Когда я запускаю javascript в браузере для chrome dev, он не возвращает None, поэтому я действительно понятия не имею, что там происходит. Я могу go войти и найти элемент при проверке html. И всплывающее окно четко открывается при запуске кода. Почему это не может найти этот элемент?

pic

Примечание: если вы попробуете это самостоятельно, имена классов для этих элементов, вероятно, будут другими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...