使用 selenium 和 python 实现网站自动化

website automation with selenium along with python

你好!我正在使用 selenium 和 python 自动化速卖通,用户可以在其中通过语音命令购买产品,并且可以购买任何类型的产品。现在的问题是颜色和尺寸的选择,我已经尝试过 x-path 但是每个元素对于相同的颜色和尺寸都有不同的 x-path,我想要一个至少有四种颜色和四种尺寸的选择器,为了我已经给出的许可图片、代码和 link 也添加到页面中。如果有人有解决方案,请提及。提前谢谢

代码:

#用于选择第三项的颜色2,但每个元素都不同

elif '2' in query:                                 
                try:                                            
                    color_picker2=driver.find_element_by_xpath('//*[@id="root"]/div/div[2]/div/div[2]/div[7]/div/div[1]/ul/li[2]/div')
                    color_picker2.click()
                except:                                        
                    color_picker2=driver.find_element_by_xpath('//*[@id="root"]/div/div[2]/div/div[2]/div[6]/div/div/ul/li[2]/div')
                    color_picker2.click()  

link 页面是: https://www.aliexpress.com/item/1005001621523593.html?spm=a2g0o.productlist.0.0.45157741uKKhLZ&algo_pvid=bd6c858e-759b-4c66-a59b-2b1724286123&algo_exp_id=bd6c858e-759b-4c66-a59b-2b1724286123-0

图像(已标记)所需的详细信息是:

网页中的彩色按钮似乎有一个名为'sku-property-image'的class。尺码有 'sku-property-text'。尝试 find_elements_by_class_name(例如:Selenium Finding elements by class name in python)。然后读取元素里面的内容,有条件地点击()。

到 select 你可以使用 css select 或者你可以使用这个 select 或者根据你想要的改变索引 select;我正在 select 图片,但我认为只有 div class sku-属性-图片就足够了:

第一个模型 CSS 选择器:

ul[class='sku-property-list']  li:nth-child(1) div[class='sku-property-image'] img

如果你想要select第二个只需将1换成2:

ul[class='sku-property-list']  li:nth-child(2) div[class='sku-property-image'] img

对于大小,问题有点复杂,因为大小和国家/地区具有相同的 select左右,在这种情况下,您必须获取父元素并对您要查找的子元素进行硬编码,正如您在下面看到的 select 或 div:nth-child(2) 指示尺寸部分,而不是 li:nth-child(1) 尺寸 select, 1= S, 2=M, 等等...例子:

第一个尺码 S CSS 选择器:

div[class='sku-wrap'] div:nth-child(2) ul[class='sku-property-list'] li:nth-child(1) div[class='sku-property-text'] span

第二码 M CSS 选择器:

div[class='sku-wrap'] div:nth-child(2) ul[class='sku-property-list'] li:nth-child(2) div[class='sku-property-text'] span