簡體   English   中英

Java中的Selenium WebDriver。 通過標簽ClassName和父ClassName選擇

[英]Selenium WebDriver in Java. Select by tag ClassName and parent ClassName

我需要找到一個帶有標簽select和ClassName的元素

fare-finder__calendar__month-selector__dropdown

在具有ClassName的div中

fare-finder__calendar--outbound

問題是它們之間還有其他我不在乎的div。 目前,我正在使用以下解決方案:

driver.findElement(By.cssSelector("div.fare-finder__calendar--outbound div div div div label select.fare-finder__calendar__month-selector__dropdown")).click();

但我想擺脫它們之間的標簽

div div div div label

您能為我提供一個解決方案,以忽略所有我感興趣的標簽之間的標簽嗎?

謝謝,

找到元素時,可以通過執行另一個findElement調用來在該元素內找到元素。

driver.findElement(By.cssSelector("div.fare-finder__calendar--outbound")).findElement(By.cssSelector("select.fare-finder__calendar__month-selector__dropdown"));

您還可以使用(明智的)xpath:

By.xpath("//div[@class='parentElementClass']//select[@class='childElementClass']");

我對CSS選擇器不太熟悉,但是應該允許任何子位置:

driver.findElement(By.cssSelector("div.fare-finder__calendar--outbound select.fare-finder__calendar__month-selector__dropdown")).click();

您無需指定之間所有用>字符表示的元素。

更新

我已經編輯了上面的代碼以正確編譯,並完全代表您的頁面實際類。 經過測試並針對此模擬頁面https://5d70fb99-bb95-4031-bdec-e46bd79a44fd.htmlpasta.com/

如果這些定位器都不起作用,則您正在自動化的實際頁面可能有些奇怪。 發布最少的HTML代碼(重現問題),所使用的Selenium-Webdriver版本以及所使用的驅動程序(Chrome,Firefox,IE,Edge?)也可能很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM