使用 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()
图像(已标记)所需的详细信息是:
网页中的彩色按钮似乎有一个名为'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
你好!我正在使用 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()
图像(已标记)所需的详细信息是:
网页中的彩色按钮似乎有一个名为'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