Как мне нацелить div с определенным стилем с Selenium в Python? - PullRequest
0 голосов
/ 01 мая 2019

Привет, я пытаюсь выбрать всплывающее окно выбора цвета. Selenium не может найти элементы в средстве выбора, и я думаю, что это связано с тем, что в коде сайта много одинаковых элементов div.

Я думал, что мне придется выбирать по стилю, так как это единственное, что отличается (см. Скриншот)

Но я не могу работать над выбором по стилю

Я пробовал через Xpath и с помощью селектора CSS. Но я, должно быть, делаю что-то не так.

Теперь у меня есть:


driver.find_element_by_class_name("sp-replacer").click()

driver.find_element_by_css_selector(".div[style='position: absolute; top: 721.203px; left: 0px;']")

enter image description here

Ответы [ 3 ]

1 голос
/ 01 мая 2019

Вот xpath, который я предпочел бы использовать, поскольку имя класса другое.

//div[@class='sp-container sp-light sp-buttons-disabled sp-palette-disabled']
1 голос
/ 02 мая 2019

Попробуйте что-то вроде:

// div [содержит (@ class, 'some_wanted_class') и содержит (@ class, 'other_wanted_class'), а не (содержит (@ class, 'some_unwanted_term_in_class'))]

1 голос
/ 01 мая 2019

Используйте следующий селектор CSS.

element=driver.find_element_by_css_selector('div.sp-container.sp-light[style="position: absolute; top: 721.203px; left: 0px;"]')

Для обработки динамического элемента используйте WebdriverWait с локатором селектора CSS.

element=WebDriverWait(driver,40).until(expected_conditions.element_to_be_clickable((By.CSS_SELECTOR,'div.sp-container.sp-light[style="position: absolute; top: 721.203px; left: 0px;"]')))

Обратите внимание, что вам необходимо выполнить следующие операции импорта

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...