![](/img/trans.png)
[英]How can I find and click on dropdown element with XPath in Selenium?
[英]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.