python - 使用 selenium 和 python 实现网站自动化
问题描述
嗨!我正在使用 selenium 和 python 自动化 aliexpress,用户可以通过语音命令购买产品,并且可以购买任何类型的产品。现在问题是颜色和尺寸的选择,我已经尝试过 x-path,但是对于相同的颜色和尺寸,每个元素都有不同的 x-path,我想要一个至少有四种颜色和四种尺寸的选择器,我已经给出了间隙图像、代码和页面链接。如果有人有解决方案,请提及。提前谢谢
代码 :
#用于选择第三个项目的颜色 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()
解决方案
要选择可以使用 css 选择器的类型,您可以使用此选择器根据您想要选择的内容更改索引;我正在选择图像,但我认为只有 div 类 sku-property-image 就足够了:
第一个模型 CSS 选择器:
ul[class='sku-property-list'] li:nth-child(1) div[class='sku-property-image'] img
如果要选择第二个,只需将 1 更改为 2:
ul[class='sku-property-list'] li:nth-child(2) div[class='sku-property-image'] img
对于 Size 问题有点复杂,因为 size 和 country 具有相同的选择器,因此在这种情况下,您必须获取父元素并硬编码您要查找的子元素,正如您在下面的选择器中看到的 div :nth-child(2) 表示尺寸部分,而不是 li:nth-child(1) 选择哪个尺寸,1=S,2=M,等等……例如:
第一个 SIZE 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
第二个 SIZE 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
推荐阅读
- rest - 跨域请求在任何浏览器中被阻止,即使支持
- outlook - 是否有任何 Microsoft Graph API 可用于备份交换电子邮件 O365 服务
- python - 如何在 plotly.express 直方图中增加 x 刻度
- c++ - 使用 wxWidget 构建“多界面”
- c# - 如何在单例中使用作用域依赖注入
- graphql - 在 WSO2 上发送 GraphQL 内省请求
- python - 地形数据,字符串“-”不能转换为浮点数
- amazon-web-services - AWS CodePipeline - 在 CodePipeline 中部署我的 .NET Web api 时出错
- python - Python获取excel列大小
- django - Django:检查用户输入的旧密码是否有效