Xpath элементов, которые я хочу прочитать (бухгалтерия, бизнес, маркетинг, технологии), выглядит следующим образом:
/html/body/table/tbody/tr/td[2]/table/tbody/tr/td[2]/font/a
/html/body/table/tbody/tr/td[2]/table/tbody/tr/td[4]/font/a
/html/body/table/tbody/tr/td[2]/table/tbody/tr[3]/td[2]/font/a
/html/body/table/tbody/tr/td[2]/table/tbody/tr[3]/td[4]/font/a
Идентификатор для всех элементов:
//font[@class='wlCategoryLinkBold']/a
Страница, которую я тестирую, похожа на следующую:
![enter image description here](https://i.stack.imgur.com/OwLwF.jpg)
У меня есть следующий метод испытаний:
public void ListAllLinksInArray()
{
SelObj = new DefaultSelenium("localhost", 4444, "*iexplore", "http://localhost/crm.aspx");
SelObj.Start();
SelObj.Open("http://localhost/crm.aspx");
SelObj.SelectFrame("content");
List<string> topics = new List<string>();
int count = (int)SelObj.GetXpathCount("//font[@class='wlCategoryLinkBold']/a");
for (int i = 1; i <= count; i++)
{
if (SelObj.IsElementPresent("//font[@class='wlCategoryLinkBold']/a"))
{
string value = SelObj.GetText("//font[@class='wlCategoryLinkBold']/a[" + i + "]"); topics.Add(value);
}
}
string[] arrTopics = topics.ToArray();
System.IO.File.WriteAllLines(@"C:\WriteLines.txt", arrTopics);
}
Приведенный выше код записывает учет (только один раз) в текстовый файл.
Если я это сделаю:
string value = SelObj.GetText("//font[@class='wlCategoryLinkBold']/a");
Я получаю Бухгалтерский учет (4 раза) в текстовом файле.
Что не так в цикле, который не печатает все четыре ссылки в текстовом файле. Заранее спасибо!