我正在尝试在Sephora上刮擦图像URL和产品颜色阴影的名称,并且能够获取所有阴影的URL和名称,但当前单击的颜色除外(这似乎是默认单击的)。我究竟做错了什么?
示例产品:link
请参见以下代码:
def get_shade_names(url):
global names_df
driver.get(url)
shade_names = []
shade_items = driver.find_elements_by_class_name('css-1ax77m2')
btn = driver.find_element_by_class_name('css-ctsnxi')
sleep(2)
btn.click()
sleep(5)
for item in shade_items:
name_tags = item.find_elements_by_class_name('css-1j1jwa4')
sleep(2)
for tag in name_tags:
shade_name = tag.get_attribute('aria-label')
sleep(2)
shade_names.append(shade_name)
names_df = pd.DataFrame(shade_names, columns = ['Shade_name'])
return names_df
答案 0 :(得分:1)
由于按钮具有不同的类名称,即class="css-1p28rvx "
您可以尝试在CSS路径下获取所有阴影名称,包括默认选择的一个
shade_names = []
shade_elements = driver.find_elements_by_css_selector('.css-1ax77m2 button')
for element in shade_elements:
shade_name = element.get_attribute('aria-label')
shade_names.append(shade_name)
print(len(shade_names))
print(shade_names)