t.me/atinfo_chat Telegram группа по автоматизации тестирования

Бот на C# Проблема с локатором, поиск элементов

Теги: #<Tag:0x00007f7485e245b8> #<Tag:0x00007f7485e244c8>

Что “ЗАЧЕМ”? вас интересуют мотивы? Для чего нужна программа, которую пытаюсь сделать?

вам надо сортировать ? http://www.java2s.com/Tutorial/CSharp/0220__Data-Structure/0360__Array-Sort.htm ?
или всего один последний по XPath position()
https://docs.google.com/a/jazzteam.org/document/d/1PdfKMDfoqFIlF4tN1jKrOf1iZ1rqESy2xVMIj3uuV3g/pub#h.ity40ix6gqz3 ?

1 Симпатия

Все, разобрался! Решил проблему через XPath.

IWebElement data = Browser.FindElement(By.XPath(".//*[@id='bets-next']/div[2]/div[last()]/div[1]/div[2]/button"));
data.Click();

Пытаюсь сделать бота для сайта со ставками на спорт. Будет управлять профилем и делать ставки на события по определенной схеме, если интересно позже скину вам что получится.

Любопытная идея! Есть вопросы: Как планируется адаптировать локаторы под изменившуюся среду? Не каждый же раз код переписывать. Не лучше ли переделать локаторы под человекочитаемые, вида:

By.XPath("*parentdiv/[contains(text(),'match')]"

Для каждой игровой команды можно брать значение data-id и имя самой команды и записывать в словарь ключ-значение.

по определенной схеме

Это по какой такой? :slight_smile:
И вопрос по тестовой среде и приложению, вашу стратегию по тому как будет работать бот в студию! :slight_smile: Очень интересно.

В моем последнем сообщении как раз такой локатор:
.//*[@id='bets-next']/div[2]/div[last()]/div[1]/div[2]/button
Здесь прописан путь до элемента (кнопка) первой команды из двух, первого события из постоянно меняющегося списка на очереди. Благодаря /div[last()] локатор как раз адаптируется к изменениям среды. Локаторы составляю с помощью плагина для “лисы” FirePath и если надо допиливаю в ручную.
Насчет ставок, секретной схемы никакой нет, все уже давно избито, но суть в том, что делаем ставку на команду с низким коэффициентом, если ставка не заходит удваиваем, и так до победы. Повторяем алгоритм… Для старта лучше всего иметь приличный банк.
По поводу:
> Для каждой игровой команды можно брать значение data-id и имя самой команды и записывать в словарь ключ-значение.
Для реализации этого, знаний соответствующих не имею, пытался у местных обитателей узнать как выковыриватьdata-id ответа вменяемого так и не получил.
Если есть желание помочь, буду рад сотрудничеству! :slight_smile: