首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >selenium cssSelector与tagName

selenium cssSelector与tagName
EN

Stack Overflow用户
提问于 2014-07-08 17:08:43
回答 2查看 1.4K关注 0票数 1

我有一个需要从页面中查找所有iframe和object标记的用例。

目前我使用的是cssSelector()方法。我注意到还有tagName()方法。

这两种方法和上面的用例有什么不同?

EN

回答 2

Stack Overflow用户

发布于 2014-07-08 17:16:01

findElement(By.tagName("a_tag"))将通过<iframe><div>等html标签查找元素。但是你只能给它提供html标签,不能提供css类,等等。

使用findElement(By.cssSelector("a_tag")),您可以找到带有html标记的元素,但您也可以提供一个css类,例如findElement(By.cssSelector("div.myClass"))

对于您的情况,您可以使用:

代码语言:javascript
复制
List<WebElement> iframes = driver.findElements(By.tagName("iframe"))
List<WebElement> objects = driver.findElements(By.tagName("object"))

然后执行for循环进行测试

票数 2
EN

Stack Overflow用户

发布于 2014-07-08 17:18:11

建议使用cssSelector/id/xpath/etc ...因为如果元素最初没有出现在页面上,它将等待显示“所需的元素”。

因为By.cssSelector更具体,selenium将继续检查元素是否存在,直到隐式等待(x秒)超时。

By.Tag一点也不具体。使用By.tagName,selenium不会等待元素。在findElements(By.tagName(“表”))上,Selenium将在页面加载后立即返回一个包含所有表的数组。由于“所需”元素还不存在,它将不会出现在数组中。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24627880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档