簡體   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