Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Проверка элиментов на каждой странице............

python
selenium
Теги: #<Tag:0x00007f7b651c5358> #<Tag:0x00007f7b651c5218>

#1

Привет всем,
У меня 100 элементов на каждой странице. Есть нумерация страниц. Как я могу пройтись по каждой странице и проверить что у меня есть 100 элементов на каждой странице. Я просто думаю как написать какой-нибудь цикл чтобы это делал.


(Bohdan Harasym) #2

try {
do {
List < Webelements > list = driver.findElements(“locator”);
assertTrue(list.size(), 100);
driver.findElement(“nextPageButton”).click();
} while (driver.findElement(“nextPageButton”).isEnabled(); )

} catch (NoSuchElementException e) {
syso(“no more pages”);
}
}

може якось так. немає ідешки під рукою, щоб спробувати, але ідея така.


#3

У тебя есть может на python?


(Bohdan Harasym) #4

та яке, я тільки джаву почав вчитию сорі))


#5

Извени Украинский не понимаю…


(Bohdan Harasym) #6

только джаву начал учить, пайтона вообще н езнаю


#7

Ок спасибо за ответ…!


(Oleksii Komar) #8

На питоне супер просто. Советую юзать не чистый selenium, a Splinter.
Ищешь элемент - тебе отдаёт list.
len(list) - вот тебе и кол-во этих элементов.

Это если конечно нету выпердонов с невидимыми элементами и всяким таким.


(Oleksii Komar) #9

А по страницам - цикл. Заходишь, проверяешь, выходишь и пока все не посмотришь.


#10

Я пытаюсь так:

        while True:
            amount_page = self.browser.find_elements_by_css_selector(".ng-scope>img")
            em = len(amount_page)
            self.assertEqual(em, 100)
            self.wait.until(EC.element_to_be_clickable(
                (By.XPATH, ".//*[@id='content']/div/div/div/div/div[1]/div[2]/ul/li[7]/a"))).click()

Проблема что на последней странице есть 87 элементов он выкидывает Exception. Пытаюсь разными способами, то цикл заходит в бесконечный цикл то Exception…:frowning:


(Bohdan Harasym) #11

Надо по другому организовать цикл. Условием повторения должна быть активная кнопка следующей страници. Если кнопка неактивная, цикл разрываеться.
do {

} while (expression)


(Hanna Mykytenko) #12

Russian also not good…


(Дмитрий Мирошник) #13

Так делать очень плохо. Если страницу изменят - твой тест с высокой вероятностью упадёт. Привяжись к классу (если он уникален) любо любому другому идентификатору div, стоящего последним в дереве. И вместо li[7] тоже подбери вменяемый локатор.