2014-04-09 48 views
3

如何在Outlook中選擇電子郵件來聲明內容。如何在Outlook中選擇電子郵件來聲明內容

我目前的任務是測試live.com郵件網頁。 Live.com WebPage

我遇到的問題是,當我去點擊行項目的電子郵件,我收到一個錯誤:

Permission denied to access property '__qosId'

,我不能爲我的生活弄清楚什麼是錯的。代碼如下。

// Create a new instance of the Firefox driver 
    WebDriver driver = new FirefoxDriver(); 

    // Create a new instance of the Selenium backed webdriver 
    Selenium selenium = new WebDriverBackedSelenium(driver, baseUrl); 

    // And now use this to visit Live.com 
    driver.get("https://mail.live.com/"); 

    // Find the text input element by its name 
    WebElement emailField = driver.findElement(By.id("i0116")); 
    // Enter your email 
    emailField.sendKeys(email); 

    // Repeat process for Password field 
    WebElement passField = driver.findElement(By.id("i0118")); 
    passField.sendKeys(password); 

    // Sign In button 
    WebElement signInBtn = driver.findElement(By.name("SI")); 
    signInBtn.click(); 

    // Click the compatibility link 
    driver.findElement(By.linkText("continue to your inbox")).click(); 

    // Assert some things 
    assertTrue(selenium.isTextPresent("Inbox")); 

當我到達這一步時,我已經嘗試了幾個不同的選項,但似乎找不到合適的選擇。我也用python編寫了相同的測試,但不會遇到任何具有類似代碼的人。

// Opens the first email in the row 
    driver.findElement(By.partialLinkText("foo foo")).click(); 

誤差蟒蛇看起來是這樣的:

WebDriverException: Message: u"Permission denied to access property '__qosId'" ; Stacktrace:

+0

能否請你分享一段HTML?我只是沒有帳戶https://mail.live.com。但看看WebDriver的可能定位器會很有趣。 – olyv

回答

1

當試圖找到這個問題的解決方案,我得到了同樣的問題。我相信這是Selenium中的一個錯誤。

爲了實現您期望的目標,我嘗試了JavaScriptExecutor並使其工作。

WebDriver driver = new FirefoxDriver(); 
driver.get("https://mail.live.com/"); 

driver.findElement(By.name("login")).sendKeys("[email protected]"); 
driver.findElement(By.name("passwd")).sendKeys("password"); 
driver.findElement(By.name("SI")).click();  

Thread.sleep(2000); // change that as you wish. or use global wait. 

((JavascriptExecutor) driver).executeScript("document.getElementsByClassName('t_estc')[0].click();"); 

什麼這裏做我,使用JavaScript我得到了類「t_estc」和我確定的所有郵件單擊該數組的第一個元素。

這將點擊收件箱中的第一封電子郵件。如果你想解析所有的列表,做一些邏輯。

0

您可以使用下面的代碼片段你的目的:

代碼片段:

driver.get("https://mail.live.com/"); 

driver.findElement(By.name("login")).sendKeys("[email protected]"); 
driver.findElement(By.name("passwd")).sendKeys("password"); 
driver.findElement(By.name("SI")).click();  

//insert code to wait for an element available on the landing page 

List<WebElement> email = driver.findElements(By.xpath("//span[@class='Sb']")); 
email.get(0).click(); 

代碼片段2:

driver.get("https://mail.live.com/"); 

driver.findElement(By.name("login")).sendKeys("[email protected]"); 
driver.findElement(By.name("passwd")).sendKeys("password"); 
driver.findElement(By.name("SI")).click();  

//insert code to wait for an element available on the landing page 

WebElement email = driver.findElements(By.xpath("//span[@class='Sb'][1]")); 
email.click(); 
+0

運行最上面的代碼片段,並收到下面的堆棧跟蹤:org.openqa.selenium.WebDriverException:權限被拒絕訪問屬性'__qosId' 命令持續時間或超時:38毫秒 –

+0

底部片段失敗,在此行有相同的堆棧跟蹤:WebElement email = driver.findElements(By.xpath( 「//跨度[@類= 'SB'] [1]」)); –

相關問題