Используя C# и веб-драйвер Selenium для chrome, я пытаюсь получить
каждое свойство, параметр и конфигурацию, которые находятся в теге Property .
Их подпункт, который находится в подпункте.
Их значение, которое находится в значении.
я. Разделитель не используется, поэтому я не могу разделить текст, если между каким-либо значением есть пробел. II. Свойство, Настройка и Конфигурация фиксированы; Бу номер подпункта и их значения не фиксируются. Так что их позиции продолжают меняться.
Какой подход мне выбрать?
Пример HTML приведен ниже.
<span class="list_props">
<div style="height:8px;overflow:hidden;clear:left;"></div>
<strong>Profile</strong>
<strong style="font-style:italic;">Prop1:</strong>
<a href="" title="P1-Profile Item 1">P1 Profile Item 1</a>
<strong style="font-style:italic;">Prop2:</strong>
<a href="" title="P2-Profile Item 1">P2 Profile Item 1</a>
<strong style="font-style:italic;">Prop3:</strong>
<a href="" title="P3-Profile Item 1">P3 Profile Item 1</a>
<a href="" title="P3-Profile Item 2">P3 Profile Item 2</a>
<div style="height:8px;overflow:hidden;clear:left;"></div>
<strong>Settings</strong>
<strong style="font-style:italic;">Setting1:</strong>
<a href="" title="Setting1 Value1">Setting1 Value1</a>
<div style="height:8px;overflow:hidden;clear:left;"></div>
<strong>Config</strong>
<strong style="font-style:italic;">Config:</strong>
<a href="" title="config-1">config 1</a>
<a href="" title="config-2">config 2</a>
</span>
Я пробовал кое-что , но лучшее, что я смог достичь, приводится ниже. Это не дает должного результата.
var props = c.FindElement(By.XPath("//*[@id='ajax-prop-details-" + objectid + "']"))
.FindElements(By.XPath(".//span[@class='list_props']/")).ToList();
foreach(var ca in props)
{
Console.WriteLine("> " + ca.Text);
var attribs = ca.FindElements(By.XPath(".//following-sibling::")).ToList();
foreach (var atrb in attribs)
{
Console.WriteLine(">> " + atrb.Text);
}
}