Работа с таблицей на сайте

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18
Ребята! Как настроить клик по ячейке с Кф этой таблицы на сайте. В переменной есть играющие команды, исход, Кф. Нужно правильно попасть в ячейку. В таблице могут быть одинаковые Кф, поэтому нельзя настроить клик по InnerText.

Допустим нужно попасть в Россия - Египет П1(отмечено красным квадратиком)


upload_2018-3-10_17-47-5.png
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
  • Спасибо
Реакции: Kirillzenp

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18

Вложения

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
Скиньте урл страницы, попробуем сделать шаб, если там не много мороки.
 
  • Спасибо
Реакции: Kirillzenp

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
5...20 минут и сделаю...
 
  • Спасибо
Реакции: Kirillzenp

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
C#:
Tab tab = instance.MainTab;
string match_title_text = project.Variables["match_title_text"].Value; // в переменной наш заголовок матча "Буллетс — Олд Роуд"

// формируем наш xPath
// Выглядит типа так: ищем строку таблицы, которая содержит наш заголовок матча, а в ней уже ищем ячейку №3
string xpath_1 = "//tr[@class='table__row'][./td[@class='table__col _size_long']/div/span[@class='table__match-title-text' and contains(text(), '" + match_title_text + "')]]/td[3]";
HtmlElement ab = tab.MainDocument.FindElementByXPath(xpath_1, 0);
ab.Click(); // кликаем

//Возвращаем в проект зачение текста из той ячейки, по которой мы кликали (чтобы убедится что нашли то что надо)
var text = ab.InnerHtml;
return text;
Или весь шаб скачать.
 
  • Спасибо
Реакции: Kirillzenp

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18
FА мо
C#:
Tab tab = instance.MainTab;
string match_title_text = project.Variables["match_title_text"].Value; // в переменной наш заголовок матча "Буллетс — Олд Роуд"

// формируем наш xPath
// Выглядит типа так: ищем строку таблицы, которая содержит наш заголовок матча, а в ней уже ищем ячейку №3
string xpath_1 = "//tr[@class='table__row'][./td[@class='table__col _size_long']/div/span[@class='table__match-title-text' and contains(text(), '" + match_title_text + "')]]/td[3]";
HtmlElement ab = tab.MainDocument.FindElementByXPath(xpath_1, 0);
ab.Click(); // кликаем

//Возвращаем в проект зачение текста из той ячейки, по которой мы кликали (чтобы убедится что нашли то что надо)
var text = ab.InnerHtml;
return text;
Или весь шаб скачать.
А можно сделать так, чтобы открывала не по порядковому номеру ячейки, а по цифре, что в ней(которая у нас уже есть в переменнной)
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
Дык значение в ячейке там постоянно меняется в динамике без обновления страницы, точно надо?
 
  • Спасибо
Реакции: Kirillzenp

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
Заменить в коде
Код:
/td[3]
на:
Код:
/td[. ='11.50']
где 11.50 это нужный текст внутри ячейки. Ну или через переменную там его вставлять, как я match_title_text вставлял.

UPD: ну и изучайте сами xPath по ссылкам-мануалам в конце этого поста: путеводитель для новичков при использовании ZennoPoster+xpath+HtmlAgilityPack+POST\GET
 
  • Спасибо
Реакции: Kirillzenp

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18
Заменить в коде
Код:
/td[3]
на:
Код:
/td[. ='11.50']
где 11.50 это нужный текст внутри ячейки. Ну или через переменную там его вставлять, как я match_title_text вставлял.
Это просто великолепно! То что я весь день пытался сделать, вы сделали за пол часа. Надеюсь завтра смогу пристроить данный алгоритм к своему шаблону. Огромное спасибо!!
 
  • Спасибо
Реакции: orka13

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18
Скиньте урл страницы, попробуем сделать шаб, если там не много мороки.
Cкажите плз, весь день искал, не смог найти ответ. Как записать класс, если он не одинаков, как на скрине sportcolor1 level(...)
upload_2018-3-11_19-39-31.png
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
вопрос не ясен, больше подробностей.
 

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18
//tr[@class="trEventChild sportColor1 level(number)"] На месте "number" разные числа, как мне следует написать
 

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
ну так вставьте туда переменную, в которой содержится нужное число, и склейте обратно в 1 строку. Это я так склеивал в string xpath_1 в том коде (в кавычках текстовое значение, а через "плюсик" добавлял переменную match_title_text. Это азы C#.
 

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18
Я о другом. Я не знаю как //tr[@class="trEventChild sportColor1 level(number)"] написать, ведь здесь разные числа. Можно ли как-то class обрезать
 

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18
upload_2018-3-11_19-59-22.png

это другой сайт
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
Код:
//tr[contains(@class, 'trEventChild sportColor1 level')]
учите маны по xPath из того поста что я давал, и помимо скринов давайте ссылку на сайт, по скринах не проверить правильно ли синтаксис сложен.
 
  • Спасибо
Реакции: Kirillzenp

Kirillzenp

Client
Регистрация
27.02.2018
Сообщения
100
Благодарностей
1
Баллы
18
Код:
//tr[contains(@class, 'trEventChild sportColor1 level')]
учите маны по xPath из того поста что я давал, и помимо скринов давайте ссылку на сайт, по скринах не проверить правильно ли синтаксис сложен.
Спасибо! То что надо. Обязательно выучу, все что вы дали.
 

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