Попробуйте использовать следующий селектор CSS, чтобы идентифицировать элемент:
'p.style.protect'
Похоже, это уникально идентифицирует элемент, который показывает, какой цвет выбран.
Тогда ваш цвет сохраняется во внутреннем HTML-элементе, так что вы можете получить его с помощью чего-то вроде
chosenColor =
driver.find_element_by_css_selector('p.style.protect').text()
ОК, теперь я понимаю, что вы хотите использовать xPathдинамически выбирать элемент на основе цвета.Я заметил, что xPath
'//*[@id="details"]/ul/li[4]/a[1]'
находит верхний правый элемент,
'//*[@id="details"]/ul/li[4]/a[2]'
находит средний правый элемент и так далее ...
Таким образом, еслиВы можете просто использовать карту для сопоставления цветов с числами, что-то вроде
colorMap = {
"brown" : 1,
"cyan" : 2,
"grey" : 3,
...
}
(не уверен, что цвета совпадают правильно в моем примере, но надеюсь, что вы поняли)
Тогда,
driver.find_element_by_xpath('//*[@id="details"]/ul/li[4]/a[' +
'colorMap.("<whatever color you are looking to select>")' + ]').click()
следует выбрать элемент с указанным вами цветом.
Это полезно?Дайте мне знать, если у вас есть какие-либо вопросы.