2016-08-08 49 views
0

我想從我的辦公室Outlook Web應用程序自動發送電子郵件。我已成功自動化Outlook的登錄過程。但登錄後,新選項卡上沒有用於發送郵件的檢查元素。那麼我怎樣才能點擊這個新的選項卡與硒。我需要爲此使用其他框架嗎?通過使用硒,蟒蛇自動化Outlook Web應用程序

自動化的流程是: 硒會先點擊webapps->的電子郵件 - >印度 在Outlook Web App和Outlook Web應用程序,登錄後登錄

這裏後會打開是我的代碼: 這裏我的代碼:類LoginTest(unittest.TestCase生成):

def setUp(self): 
    self.driver=webdriver.Firefox() 
    userName="username" 
    password="password" 

    self.driver.get("http://sparshv2/") 
    ''' 
    aa=self.driver.switch_to.alert; 
    aa.send_keys(userName+ Keys.COMMAND + "t") 
    aa.send_keys(password+ Keys.COMMAND + "t") 
    aa.accept() 
    ''' 
def test_outlook(self): 
    driver=self.driver 

    userName="username" 
    password="password" 


    #time.sleep(10) 
    aa=driver.switch_to.alert; 


    #aa.authenticate(userName, password) 
    aa.send_keys(userName) 
    #aa.send_keys(Keys.TAB) 

    #ele_id=driver.execute_script("return window.document.activeElement.id") 


    #time.sleep(5) 
    aa.send_keys(password) 
    #aa.send_keys(Keys.TAB) 

    aa.accept() 



    web_apps_link="Web Apps" 
    emailId="Email **" 
    country="India" 



    webAppsElementId=WebDriverWait(driver,10).until(lambda driver:driver.find_element_by_link_text(web_apps_link)) 
    webAppsElementId.click() 
    #time.sleep(20) 

    #webAppsElementId.send_keys(Keys.CONTROL + Keys.RETURN) 
    aa=driver.switch_to.alert; 
    aa.send_keys(userName+ str(KEY_ENTER)) 
    aa.send_keys(password+ str(KEY_ENTER)) 
    aa.accept() 

    ahdElementId=WebDriverWait(driver,10).until(lambda driver:driver.find_element_by_partial_link_text(emailId)) 
    ahdElementId.click() 

    #time.sleep(20) 

    driver.switch_to_window(driver.window_handles[1]) 
    # country=input("You are from which country: india or outside india") 
    # if(country.lower()=="india"): 
    countryElementId=WebDriverWait(driver,10).until(lambda driver:driver.find_element_by_link_text(country)) 
    countryElementId.click() 
    #elif(country.lower()=="outside india"): 
    # countryElementId=WebDriverWait(driver,20).until(lambda driver:driver.find_element_by_link_text("Overseas")) 
     # countryElementId.click() 
    driver.switch_to_window(driver.window_handles[2]) 

    emailElementId = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(userNameId)) 
    emailElementId.clear() 
    emailElementId.send_keys(userName) 

    passwordElementId = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(passwordId)) 
    passwordElementId.clear() 
    passwordElementId.send_keys(password) 

    signElementId = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_class_name(signInButton)) 
    signElementId.click() 
+0

你能分享你的代碼嗎? –

+0

好的這裏是我的代碼: – kamal

+0

其中???我無法看到... –

回答

0

使用Selenium電子郵件一代是不是最好的主意。我勸你把目光投向win32com.clientsmtplib

在一般這會看起來像

import win32com.client as win32 
outlook = win32.Dispatch('outlook.application') 
mail = outlook.CreateItem(0) 
mail.To = 'to address' 
mail.Subject = 'Message subject' 
mail.body = 'Message body' 
mail.send 
+0

好的謝謝你的回答 – kamal

0

我用的Firefox的插件Firebug的檢查,現在我能看到的元素。 謝謝大家提供的答案。