<p>当我尝试登录Gmail并使用Selenium远程发送电子邮件时,我遇到了这个问题。
我注意到,每次我使用Selenium打开Gmail时,收件人字段、主题字段、email body字段和send元素的id都会发生变化(每个字段有2个不同的id)。我通过检查每个id解决了这个问题,如下所示:</p>
<pre><code># click compose
# when page is loaded, elements appear at different time intervals (AJAX)...
# some elements may take some time to appear in the DOM
composeElem = WebDriverWait(browser, 5).until(EC.element_to_be_clickable((By.ID, ":3w")))
composeElem.click()
# add recipient
try:
recipientElem = WebDriverWait(browser, 5).until(EC.element_to_be_clickable((By.ID, ":96")))
except Exception as exc:
recipientElem = browser.find_element_by_id(':9b')
recipientElem.send_keys(emailRecipient)
# add subject
try:
subjectElem = browser.find_element_by_id(':8o')
except Exception as exc:
subjectElem = browser.find_element_by_id(':8t')
subjectElem.send_keys(emailSubject)
# add message
try:
messageElem = browser.find_element_by_id(':9t')
except Exception as exc:
messageElem = browser.find_element_by_id(':9y')
messageElem.send_keys(emailMessage)
# click send
try:
sendEmail = browser.find_element_by_id(':8e').click()
except Exception as exc:
sendEmail = browser.find_element_by_id(':8j').click()
</code></pre>
<p>这个帖子帮了我:<a href="https://stackoverflow.com/questions/44856887/log-into-gmail-using-selenium-in-python">login to Gmail using Selenium in Python</a></p>