[td[1][button[text() = 'Review']
和td[4][a[text() = '0']
代码如下,任何建议将不胜感激。
IWebElement baseTable = Browser.Driver.FindElement(By.XPath("//*[@id='summaryGrid']/table/tbody"));
ICollection<IWebElement> rows = baseTable.FindElements(By.TagName("tr"));
foreach (var row in rows)
{
bool x = row.FindElement(By.XPath("//tr[td[1][button[text() = 'Review']] and td[4][a[text() = '0']]]")).Displayed;
if (x == true)
{
row.FindElement(By.XPath("//tr[td[1][button[text() = 'Review']] and td[4][a[text() = '0']]]//button[0]")).Click();
break;
}
}
答案 0 :(得分:0)
这个xpath应该按照你提供的条件给你第一个单元格中的所有第一个按钮
//tr/td[1][/button[text() = 'Review'] and /td[4]/a[text() = '0']]/button[1]
然后你可以迭代它并在每个元素上单击()。
抱歉,我不是C#人,所以请将其作为解决方案的大纲
ICollection<IWebElement> buttons = baseTable.FindElements(By.XPath("//tr/td[1][/button[text() = 'Review'] and /td[4]/a[text() = '0']]/button[1]"));
foreach (var button in buttons)
{
button.Click();
}
答案 1 :(得分:0)
要点击第一个<td>
元素,并在第一个单元格中将文字显示为审核,以便第四个<td>
元素的文字 0 可以使用以下代码块:
IWebElement forthRowElement = Browser.Driver.FindElement(By.XPath("//*[@id='summaryGrid']/table/tbody//tr//following-sibling::td[4]"));
if (forthRow.Text == '0')
{
forthRow.FindElement(By.XPath("//self::td//preceding::td[3]")).Click();
}