2016-03-08 44 views
0

我想在使用硒的gmail中選擇特定主題的郵件。 代碼:什麼方式可以在Gmail中勾選郵件複選框?

var element = driver.FindElements(By.XPath("//tr[contains(@class,'zA yO') or contains(@class,'zA zE')]")); //select message line 
foreach (var chbox in element) 
{ 
    if (chbox.FindElement(By.XPath(//span[contains(".,'subjecttext')]")).Displayed) //Filter message line by subject text 
    { 
     chbox.FindElement(By.ClassName("T-Jo-auh")).Click(); //Click on checkbox 
    } 
    else 
    { 
     continue; 
    } 
} 

但是,此代碼勾選了所有消息的複選框。有人可以向我解釋如何點擊過濾複選框嗎?

回答

0

發生這種情況,因爲你下面的XPath將返回所有複選框

//tr[contains(@class,'zA yO') or contains(@class,'zA zE')] 

您需要確定定位器只有相應的複選框。

如果你只想點擊一個複選框,那麼你不需要使用上面的代碼。 而如果你想點擊第一個複選框,然後才用break;這樣在第一次迭代循環停止本身

希望它會幫助你

+0

問題是如何識別這定位?在識別元素下,我使用了另一個實際上並不過濾元素的過濾器// span。我應該使用xpath兄弟嗎?謝謝! – Vertigo

0

發現定位

//tr[contains(@class,'zA yO') or contains(@class,'zA zE')][./td/div/div/div/span[contains(.,'text')]]//div[@role='checkbox']