嗨,我正试图瞄准一个颜色选择器弹出。 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;']")
尝试类似的东西:
// div [contains(@ class,'some_wanted_class')并包含(@ class,'other_wanted_class')而不包含(包含(@ class,'some_unwanted_term_in_class'))]
这是我宁愿使用的xpath,因为类名不同。
//div[@class='sp-container sp-light sp-buttons-disabled sp-palette-disabled']
使用以下CSS选择器。
element=driver.find_element_by_css_selector('div.sp-container.sp-light[style="position: absolute; top: 721.203px; left: 0px;"]')
要处理动态元素,请使用带有CSS选择器定位器的WebdriverWait。
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