Поиск элемента в Python по xpath - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь щелкнуть по элементу с xpath:

//*[@id="single-71048602500"]/div[2]/div[1]

Есть еще элементы, которые начинаются с //*[@id="single"], и число меняется при каждой загрузке страницы. Таким образом, единственными определенными битами являются комбинация "single" и /div[2]/div[1].

. У CSS_selector также есть номер, поэтому он бесполезен.

Что будет с кодомвыбрать элемент будет?

Я использую Python и Selenium.

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

Попробуйте этот xpath и дайте мне знать, как он идет.

(//*[contains(@id,"single")]/div[2]/div[1])[index of an element ]

Нижеприведенный xpath поможет вам найти все элементы, содержащие значения id, как одиночные

//*[contains(@id,"single")]/div[2]/div[1]

0 голосов
/ 08 октября 2019

Здесь я предполагаю, что вы хотите щелкнуть по всем элементам, которые имеют комбинацию «одиночный» и /div[2]/div[1].

Сначала попробуйте получить все элементыот родительского элемента необходимого элемента. Теперь вы получите список WebElements.ite, просмотрите все элементы и щелкните элементы, идентификатор которых начинается с одиночного.

sd = mainpage.find_elements_by_xpath('//*[@id]') #parent webelement
for i in sd:

        if str(i.get_attribute('id')).startswith("single"):

             j = i.find_element_by_xpath('//*[@id="{}"]/div[2]/div[1]'.format(i.get_attribute('id')))
             j.click()
...