首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用WATIR递归搜索文本字段

如何使用WATIR递归搜索文本字段
EN

Stack Overflow用户
提问于 2011-07-19 01:25:53
回答 3查看 717关注 0票数 3

我正在尝试使用IE和Watir自动化一个网页。当我使用chrome加载页面并使用开发工具时,我可以确定需要填充的字段,包括它的id和名称。

然而,Watir无法找到该字段。我怀疑这是因为它被深埋在HTML层次结构中。

我可以告诉Watir对该字段进行递归搜索(在所有框架、区域和部分中)吗?

如果不可能,我可以从chrome开发工具中提取元素路径并在我的脚本中使用它吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-19 16:34:34

如果Watir找不到HTML元素,那么它很可能在一个框架中。

更多信息:http://wiki.openqa.org/display/WTR/Frames

票数 4
EN

Stack Overflow用户

发布于 2011-08-02 01:22:44

如果看不到HTML,或者至少看不到相关对象的路径,就很难给出具体的建议(确切的代码)。

除了框架(每个框架的行为就像它自己唯一的网页一样),你只需要提供尽可能多的“路径”到一个对象,以确保唯一性。例如,如果你有一个事先不知道URL的链接,它没有唯一的文本或标识符,但它在另一个容器元素中,比如div,它有一些唯一的名称、类、id等(或者它们的组合),那么你可以从容器开始识别对象。

代码语言:javascript
复制
browser.div(:how, what).link(:index, 0).click  #note index would be 1 in watir 1.x, 0 in 2.x and watir-webdriver

在框架的情况下,特别是(上帝保佑你)嵌套的框架,你需要指定所有的框架,这些框架是到对象的路径的一部分,然后需要足够的细节来确保它可以在包含你试图访问的元素的框架中被唯一地标识。

(社论):据我所见,大多数现代网站在很大程度上避免使用框架,除非在极少数特定的情况下,例如‘框架’到外部网站的链接(例如,链接到它的群组讨论线程中发布的其他网站的链接)使用许多框架被许多人认为是'web 1.0‘,甚至不是’9/11之前‘,他们使用CSS和其他方法来实现与使用框架为子区域等相同的视觉效果,而没有框架的所有缺点。

票数 1
EN

Stack Overflow用户

发布于 2011-07-19 03:37:27

Sam,Watir默认情况下会搜索整个页面,而不管元素位于何处。我的猜测是Watir浏览器命令中的how/what是不正确的。您可以在text_field定位器和文本字段的HTML码上发布您的尝试吗?

如果您知道如何使用Chrome/Firefox/IE开发工具(id、类、名称、标题等),并且知道“什么”("firstName“、"MyTextField”、"blue_text_field")等,那么您可以使用Watir中的这些细节来定位它:

代码语言:javascript
复制
@browser.text_field(:how, what)
@browser.text_field(:id, "firstName")

请在此处查看这些方法的文档:http://watir.com/documentation/

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

https://stackoverflow.com/questions/6736776

复制
相关文章

相似问题

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