簡體   English   中英

硒cssSelector與tagName

[英]selenium cssSelector vs. tagName

我有一個用例,需要從頁面中查找所有iframe和對象標簽。

目前,我正在使用cssSelector()方法。 我注意到,還有tagName()方法。

這兩種方法與上述用例有何區別?

findElement(By.tagName("a_tag"))將通過html標簽(例如<iframe><div> findElement(By.tagName("a_tag"))查找元素。 但是您只能為它提供html標簽,而不是css類等。

使用findElement(By.cssSelector("a_tag"))您可以找到帶有html標簽的元素,但也可以提供一個CSS類,例如findElement(By.cssSelector("div.myClass"))

對於您的情況,您可以使用:

List<WebElement> iframes = driver.findElements(By.tagName("iframe"))
List<WebElement> objects = driver.findElements(By.tagName("object"))

然后執行for循環進行測試

建議使用cssSelector / id / xpath / etc ...,因為如果最初頁面上不存在該元素,它將等待顯示“所需元素”。

因為By.cssSelector更具體,所以selenium將繼續檢查元素是否存在,直到隱式等待(x秒)超時為止。

By.Tag根本不是特定的。 使用By.tagName,硒將不等待該元素。 在findElements(By.tagName(“ table”)上,Selenium將返回頁面加載后立即存在的所有表的數組。由於尚不存在“需要”元素,因此它將不在數組中。

暫無
暫無

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

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