Как сделать условие на С# двум html элементам?

Nekro

Client
Регистрация
01.08.2020
Сообщения
246
Реакции
26
Баллы
28
Здравствуйте.

Задача: взять ссылку с определённого блока в зависимости от наличия текста в другом блоке и положить в переменную.

Пример ситуации:


HTML:
Развернуть Свернуть Копировать
<div id="main">

<div class="poster">
<h4>
<a href="sitelink1.ru">Cat</a>
</h4>
</div>

<div class="postarea">
<div class="flow_hidden">
<h5>
<a href="site2link.ru" rel="nofollow">Dog</a>
</h5>
</div>
</div>

</div>


Логика: ЕСЛИ div c ID "poster" содержит в h4 слово "cat", ТО взять ссылку в блоке div id="main" > div class="postarea" > div class="flow_hidden" > h5 > и положить в переменную "animal".

Скажите пожалуйста, как составляются подобные условия? Можно даже любой другой пример, чтобы я понял от чего отталкиваться. Много где требуется использовать подобное условие, чтобы брать ссылку именно с нужного места.
 
Здравствуйте.

Задача: взять ссылку с определённого блока в зависимости от наличия текста в другом блоке и положить в переменную.

Пример ситуации:


HTML:
Развернуть Свернуть Копировать
<div id="main">

<div class="poster">
<h4>
<a href="sitelink1.ru">Cat</a>
</h4>
</div>

<div class="postarea">
<div class="flow_hidden">
<h5>
<a href="site2link.ru" rel="nofollow">Dog</a>
</h5>
</div>
</div>

</div>


Логика: ЕСЛИ div c ID "poster" содержит в h4 слово "cat", ТО взять ссылку в блоке div id="main" > div class="postarea" > div class="flow_hidden" > h5 > и положить в переменную "animal".

Скажите пожалуйста, как составляются подобные условия? Можно даже любой другой пример, чтобы я понял от чего отталкиваться. Много где требуется использовать подобное условие, чтобы брать ссылку именно с нужного места.

Вам идеально подойдет метод Xpath
Код:
Развернуть Свернуть Копировать
//h4//a[text()="Cat"]//parent::*//parent::*//parent::*//h5//a[@href]
Создаете кубик с такими параметрами:
61931

61936
61933
И если ваш код вверху реален, то будет xpath код ловить вашу ссылку.

Инструкция по Xpath.
 
  • Спасибо
Реакции: Nekro
Скажите пожалуйста, как составляются подобные условия?

Используй if/else
C#:
Развернуть Свернуть Копировать
if (tab.FindElementByXpath("xpath",0))
{
    // выполняем код
}
else if (tab.FindElementByXpath("xpath_2",0))
{
    // выполняем код
}

Если у тебя только одна ветка, то условия можно составлять через xpath.
 
  • Спасибо
Реакции: Nekro
Вам идеально подойдет метод Xpath
Спасибо! Правда сработало. Я не думал, что Xpath может такое. Буду пользоваться этим решением. В этом примере элементы близко относительно друг друга. А если "километр" кода и первый элемент находится сверху, а второй внизу, независимо друг от друга. Тоже реально через xpath создать подобное условие?


Используй if/else
C#:
Развернуть Свернуть Копировать
if (tab.FindElementByXpath("xpath",0))
{
    // выполняем код
}
else if (tab.FindElementByXpath("xpath_2",0))
{
    // выполняем код
}

Если у тебя только одна ветка, то условия можно составлять через xpath.
Вот я примерно так себе это представлял. Попробую и это решение. Только сначала научусь на c# хотя бы добавлению в переменные.
 
Спасибо! Правда сработало. Я не думал, что Xpath может такое. Буду пользоваться этим решением. В этом примере элементы близко относительно друг друга. А если "километр" кода и первый элемент находится сверху, а второй внизу, независимо друг от друга. Тоже реально через xpath создать подобное условие?



Вот я примерно так себе это представлял. Попробую и это решение. Только сначала научусь на c# хотя бы добавлению в переменные.


Все реально, главное научиться пользоваться этими вставками:
C#:
Развернуть Свернуть Копировать
/parent::*             # непосредственный родитель
/ancestor::*           # все родители
/following-sibling::*  # все следующие братья
/preceding-sibling::*  # все предыдущие братья
/following::*          # все следующие элементы кроме потомков
/preceding::*          # все предыдущие элементы кроме предков
/descendant-or-self::* # контекстный узел и все его потомки
/ancestor-or-self::*   # контекстный узел и все его предки
 
  • Спасибо
Реакции: Nekro и sw_sw
Привет форумчане, помогите как через xPath кликнуть по ссылке
Код:
Развернуть Свернуть Копировать
//*[@id="res_views424052"]/a[@class='surf_ckick']/div

424052 постоянно меняется в 5 версии все работает без нареканий, в 7 даже в классическом варианте не может найти по кубику ссылку
 
Привет форумчане, помогите как через xPath кликнуть по ссылке
Код:
Развернуть Свернуть Копировать
//*[@id="res_views424052"]/a[@class='surf_ckick']/div

424052 постоянно меняется в 5 версии все работает без нареканий, в 7 даже в классическом варианте не может найти по кубику ссылку
попробуй
//*[contains(@id,'res_views')]/a[@class='surf_ckick']/div
 
  • Спасибо
Реакции: kolik

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)