Мне нужно прогнать мою переменную по каждому элементу списка, если совпадений нет, тогда перейти на следующую страницу, и так далее, пока переменная не будет равна с элементом из списка. Если ровная, тогда кликнуть по ней.
Пример страницы:
Проблема заключается в том, что цикл проходит только один раз: прогоняет каждый элемент из списка, если этого элемента нет, переключается на вторую страницу и на этом все.Мне нужно, чтобы это повторялось до тех пор, пока элемент не будет найден.
Пример кода:
import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys import time class TestPriceUa(unittest.TestCase): driver = None def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(60) def test_filter(self): #Зайти на yandex.ru self.driver.get("http://yandex.ru") #В разделе Маркет выбираю Сотовые телефоны self.driver.find_element_by_id("tab-market").click() self.driver.find_element_by_css_selector(r'.l-categories a[href="/catalog.xml?hid=91491"]').click() #Захожу в росширенный поиск self.driver.find_element_by_css_selector(r'.black').click() #Задаю параметры поиска self.driver.find_element_by_id("f2142558003-1").send_keys('20000') self.driver.find_element_by_css_selector('#f2142557926 span').click() self.driver.find_element_by_id("f2142557926-1").send_keys('3') self.driver.find_element_by_css_selector('#f1801946-1871375').click() self.driver.find_element_by_css_selector('#f1801946-1871447').click() self.driver.find_element_by_css_selector('#f1801946-1871499').click() self.driver.find_element_by_css_selector('#f1801946-1871151').click() self.driver.find_element_by_css_selector('#f1801946-11756910').click() self.driver.find_element_by_css_selector(r'.b-gurufilters_submit-button').click() #Проверка, что на странице 10 элементов self.assertEqual(len(self.driver.find_elements_by_class_name('b-offers__info')), 10) #Запоминаю первый телефон в списке first = self.driver.find_element_by_css_selector('.results>tbody>tr>td>form>div>:first-child>div.b-offers__desc>h3>a').get_attribute('id') print(first) #Изменяю сортировку на другую(популярность или новизна) self.driver.find_element_by_xpath("html/body/div[3]/table/tbody/tr[2]/td[2]/div/ul[2]/li[4]/a").click() #Список телефонов уже с новой сортировкой items = self.driver.find_elements_by_xpath("//div[@class='b-offers b-offers_type_guru'] /div[@class='b-offers__desc'] /h3 /a") #Поиск ранее запомненного телефона for list in items: if list.get_attribute('id')!=first: continue list.click() break else: self.driver.find_element_by_css_selector('.b-pager__next').click() #def tearDown(self): #self.driver.close() if __name__ == "__main__" : unittest.main()
Помогите мне написать этот цикл
