當前的gmail用戶界面已更改,它會在彈出的DIV中打開,並且每個新撰寫窗口的ID參數都會更改。任何人都可以嘗試給我的代碼?如何使用Selenium IDE自動化新gmail UI發送電子郵件?
回答
你可以做所有使用XPath(找到使用By.xpath("xpath expression")
):
- 打開Gmail頁面
- 登錄照常
- 點擊撰寫按鈕(其XPath表達式:
"//div[text()='COMPOSE']"
) - (將彈出電子郵件對話框)
- 鍵入(發送鍵)「To」文本區域中的地址:
"//textarea[@name='to']"
- 類型(發送鍵)的主題,以「主題」輸入:
"//input[@name='subjectbox']"
- 類型(發送密鑰)的電子郵件內容可編輯的div:
"//div[@class='gmail_default']"
(或"//div[@aria-label='Message Body']"
),因爲它似乎他們最近改變了他們的HTML) - 點擊發送:
"//div[text()='Send']"
感謝您的acdcjunior,但內容框由iframe提供,並且類已更改爲「class = class = editable LW-avf」。無論如何,這與我發現自己的相似。實際上,我在爲TO字段定位元素時遇到了一些問題。但現在解決了。 – MCKiran 2013-04-22 09:26:57
@MCKiran好吧,太棒了!但是你知道如何通過XPath獲取元素,對吧?這將使你的生活更容易與webdriver。 – acdcjunior 2013-04-22 12:16:25
很好的答案!,如何添加附件? – 2017-09-08 20:35:33
我發現了以下解決方案:
< TR>
<td>setTimeout</td>
<td>3000</td>
<td></td>
</tr>
<!--open命令通常會等待30秒,所以我們現在要求它等待只有3秒 - >
< TR>
<td>open</td>
<td>/mail/u/0/?shva=1#inbox?compose=new</td>
<td></td>
</TR>
< TR>
<td>type</td>
<td>//table/tbody/tr[1]/td[2]/div/div/textarea</td>
<td>[email protected]</td>
</TR>
< TR>
<td>type</td>
<td>name=subjectbox</td>
<td>Test</td>
</TR>
< TR>
<td>type</td>
<td>class=editable LW-avf</td>
<td>Hi All<br/>Hope the test is successful. <br/><br/><i> Lovingly, </i></br><b>McKiran.</b></td>
</TR>
< TR>
<td>click</td>
<td>class=T-I J-J5-Ji aoO T-I-atl L3</td>
<td></td>
</TR>
公共靜態無效的主要(字串[] args)拋出InterruptedException的{ System.setProperty ( 「webdriver.chrome.driver」, 「d:\硒\ SeleniumWork \ seleniumDrivers \ chromedriver.exe」); WebDriver driver = new ChromeDriver(); (); window()。maximize(); driver.get(「https://accounts.google.com/ServiceLogin?service=mail&continue=https://mail.google.com/mail/#identifier」); (driver.findElement(By.xpath(「.// [@ id ='Email']」))。isEnabled()) { driver.findElement(By.xpath(「.// [ ID = '電子郵件'] youremailid「) 」))的SendKeys(「; driver.findElement(By.xpath(「.//*[@ id ='next']」))。click(); } Thread.sleep(5000); WebElement menu = driver.findElement(By.xpath(「.// input [@ type ='password']」)); 如果(menu.isEnabled()){
System.out.println("Hello world");
menu.sendKeys("emailidpassword");
driver.findElement(By.xpath(".//*[@id='signIn']")).click();
}
Thread.sleep(5000);
driver.findElement(By.xpath(".//div[contains(text(),'COMPOSE')]")).click();
Thread.sleep(5000);
driver.findElement(By.xpath("//textarea[@name='to']")).sendKeys("@gmail.com");
driver.findElement(By.xpath("//input[@name='subjectbox']")).sendKeys("Sample");
driver.findElement(By.xpath( 「// DIV [@詠歎調標籤= '消息正文']」))。的SendKeys(「HI此是簡單的信息「); driver.findElement(By.xpath(「// div [text()='Send']」))。click();
}
請格式化您的代碼並添加一個解釋,以說明您提供的代碼的工作原理。謝謝! – Alex 2017-01-23 14:34:55
- 1. 如何自動化gmail使用Selenium發送郵件?
- 2. 使用Gmail發送電子郵件
- 3. 自動發送電子郵件使用
- 4. 如何自動發送電子郵件
- 5. 如何自動發送電子郵件
- 6. 如何發送自動電子郵件?
- 7. 使用Selenium自動化Gmail
- 8. 如何使用Python 3.4使用Gmail發送電子郵件?
- 9. 如何使用Gmail API使用Rest Client發送電子郵件
- 10. Laravel 5.4用Gmail發送電子郵件
- 11. 如何使用Selenium IDE在Gmail上點擊特定電子郵件?
- 12. 發送電子郵件沒有gmail
- 13. swiftmailer使用gmail與自定義域發送電子郵件
- 14. ROR發送電子郵件heroku,gmail
- 15. 如何配置WAMP(localhost)使用Gmail發送電子郵件?
- 16. 如何使用C#通過Gmail發送電子郵件
- 17. 如何使用Gmail Rest API發送電子郵件?
- 18. 如何使用C#中的SMTPclient向Gmail發送電子郵件?
- 19. 如何使用Gmail從Rails發送電子郵件?
- 20. 如何使用CodeIgniter發送Gmail電子郵件
- 21. 如何使用Gmail API和Java發送電子郵件
- 22. 如何使用Gmail的SMTP和Indy 10發送電子郵件?
- 23. 如何在C++中使用yahoo或gmail發送電子郵件
- 24. 如何使用appengine從非gmail帳戶發送電子郵件
- 25. 如何使用GMail API代表Google組發送電子郵件
- 26. 如何使用gmail從asp發送電子郵件?
- 27. 發送SMTP的Gmail電子郵件'發送郵件失敗'
- 28. 與Gmail的SMTP發送電子郵件
- 29. 笨 - 發送電子郵件Gmail的WAMP
- 30. 從汞發送電子郵件到GMail
回答:使用SMTP。 – SLaks 2013-04-21 19:34:57