我尝试使用selenium在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 :(得分:0)
这种情况正在发生,因为您的XPath正在返回所有复选框
//tr[contains(@class,'zA yO') or contains(@class,'zA zE')]
您只需要识别相应复选框的定位器。
如果您只想单击一个复选框,则无需使用上述代码。
如果您只想点击第一个复选框,那么使用break;
以便循环在第一次迭代中停止
希望它能帮到你
答案 1 :(得分:0)
找到定位器
//tr[contains(@class,'zA yO') or contains(@class,'zA zE')][./td/div/div/div/span[contains(.,'text')]]//div[@role='checkbox']