繁体   English   中英

Selenium 节点JS,不能用xpath点击特定元素

[英]Selenium Node JS, can't click on specific element with xpath

我正在尝试制作一个免费的开源脚本来购买鞋子,就在这个页面中: https://www.zalando.es/nike-sportswear-nike-waffle-one-zapatillas-summit-whitewhite-black-orange-ni112o0jj -a11.html

我可以像往常一样使用驱动程序模块获取元素并单击它们

driver.findElement(By.id('uc-btn-accept-banner')).click();

当我尝试选择脚尺寸时发生错误,首先打开尺寸选择器

driver.findElement(By.id('picker-trigger')).click();  //THIS ONE WORKS.
driver.findElement(By.xpath('/html/body/div[7]/div/div[3]/div/form/div/div[1]/div/label/span')).click();   // THIS ONE DOESN'T.

我尝试在网站上单击 xpath 的一些元素,除了脚尺寸外,它们都在工作。 有人可以帮我挑选脚的尺寸吗? 我不介意它是否使用其他方法。

您在那里使用了错误的选择器。
打开下拉菜单后,您可以通过定位器 select 任意大小,如下所示:

//input[@name="size-picker"]/..//span[text()="39"]

它会是这样的:

driver.findElement(By.id('picker-trigger')).click();
driver.findElement(By.xpath('//input[@name="size-picker"]/..//span[text()="39"]')).click();

只需更新 XPath 表达式中所需大小的值

它是一个下拉列表:(但我们不能使用 Selenium 中的 Select class 因为下拉菜单不是使用 ZE062622226144BDEEE3 选项构建的)

使用此 xpath 单击下拉菜单:

//span[text()='Elige una talla']/..

然后像这样点击:

driver.findElement(By.xpath("//span[text()='Elige una talla']/..")).click();  

现在你会看到一个脚尺寸列表:

Select 它们与下面的 xpath:

//form[@name='size-picker-form']/descendant::label[contains(@for, 'size-picker')][3]

这将是 select 显示列表中的第 3 项。 您必须将 [3] 更改为其他数字,以防您想要 select 不同的大小。

driver.findElement(By.xpath("//form[@name='size-picker-form']/descendant::label[contains(@for, 'size-picker')][3]")).click(); 

这应该是 select 40尺寸

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM