【发布时间】:2015-08-12 14:26:37
【问题描述】:
作为实习的一部分,我目前正在学习 Selenium WebDriver。我的主管希望我学习它,建立一个概念证明并在上面展示,以便他们在测试他们的 web 应用程序时可以开始使用它(我们使用 JSF,但它与问题并不真正相关)。
我遇到的最大问题是使用动态 ID 属性定位元素。由于 ID 可以更改,因此没有一致的方法来标识元素。我要么使用了 XPath,要么提取了所有输入元素并进行了进一步过滤以创建我想要的元素的映射。
我与一位从事自动化工作的朋友交谈,他提出创建空的 CSS 类来识别元素。例如,给定标签:
<input id = "name"... class="... qa_name">
我可以调用driver.findElement.(By.cssSelector(".qa_name")) 来定位它。这对测试人员来说非常方便,因为他们有一种确定的方式来定位页面上的元素。
这有什么问题吗?我知道它会起作用,并且我想将其作为一种做法来推荐,但我担心的是:
1) 由于额外的 CSS 无法对页面执行任何操作,因此页面加载时间会更长。
2) 这不是风格上合适的 CSS,因为它对页面的外观没有任何作用。
我在 Programmers StackOverflow 上问了一个类似的问题,但没有运气,所以我希望我能在这里得到答案。谢谢!
【问题讨论】:
标签: html css jsf selenium coding-style