(Python, Selenium WD) Как получить и перенести список в цикл?

У меня есть этот код

lst = ["Appearence","Logotype", "Catalog", "Product Groups", "Option Groups","Manufacturers","Suppliers",
   "Delivery Statuses","Sold Out Statuses", "Quantity Units", "CSV Import/Export", "Countries","Currencies","Customers"]

for item in lst:
    wd.find_element_by_link_text(item).click()
    assert wd.title != None

Я не хочу писать список вручную. Я хочу получить список - прямо из браузера. я использую

m = wd.find_elements_by_css_selector('li[id=app-]')
print(m[0].text)

Appearence

Я не знаю как перевести список в цикл

посмотрите это изображение экрана браузера

Пожалуйста, помогите мне понять, как использовать список и перевести его в цикл

1 ответ

Решение

В вашем примере переменная m будет список веб-элементов, вы получите его длину и итерируйте псевдо-селектор CSS :nth-child() с диапазоном:

m = wd.get_elements_by_css_selector('li#app-')

for elem in range(1, len(m)+1):
    wd.get_element_by_css_selector('li#app-:nth-child({})'.format(elem)).click()
    assert wd.title is not None

В цикле for он будет выполнять итерацию по целому ряду целых чисел, начиная с 1 и заканчивая длиной списка элементов (+1, потому что это не включено), мы будем щелкать по n-му дочернему элементу селектора, используя номер итерации, .format(elem) заменит {} появление в строке для переменной elem, в данном случае целочисленная итерация.

Другие вопросы по тегам