如果网站对其 UI 进行任何更改,selenium 网络自动化是不是仍然有效?
Posted
技术标签:
【中文标题】如果网站对其 UI 进行任何更改,selenium 网络自动化是不是仍然有效?【英文标题】:Will the selenium web automation still work if the website make any change in its UI?如果网站对其 UI 进行任何更改,selenium 网络自动化是否仍然有效? 【发布时间】:2021-12-26 20:12:05 【问题描述】:我使用 selenium java 编写了自动化脚本。我想知道即使网站的 UI 发生了一些变化,代码是否也能完成它的工作。
如果代码在更新后无法运行,那么有没有办法编写一个脚本,即使在网站的 UI 更改后也能运行。
【问题讨论】:
这无法回答,完全取决于网站以及您浏览网站的方式。 eG 如果每个元素都有一个唯一的id
,并且您只使用它们来查找元素,那么网站上的任何不更改这些 ID 的更改都不会产生影响。如果您只能使用 XPATH 或 CSS 选择器之类的东西来选择您的元素,那么几乎所有更改 CSS 或 XPATH 的更改都将意味着您的旧方法将不再适用等等。pp。我们无法给出一个普遍的答案你在这里,也不是一种特殊的秘密策略,无论变化如何,都会奏效。
【参考方案1】:
取决于变化的性质和规模。一些例子:
如果满足以下条件,自动化框架仍可能在网站更改上取得成功:
如果xpath 和/或css-selectors 是相对定位符。 如果更改是静态更改,例如添加/删除静态元素。 如果javascript/AJAX回调次数保持不变。 没有添加额外的frames。如果出现以下情况,自动化框架可能无法在网站更改上成功:
如果xpath 和/或css-selectors 是绝对的,那么索引将会改变。 如果有动态元素的添加/删除。 如果JavaScript / AJAX 回调时间增加,并且在这种情况下,您需要在实现WebDriverWait 时增加超时。 如果添加额外的iframes,则需要更多的切换步骤。【讨论】:
【参考方案2】:答案是肯定的,同时答案是否定的。
是的,您现有的代码可能会根据:
-
定位器不变。
网站加载时间(网站性能)没有受到阻碍。
执行测试方法的步骤没有改变。
如果用户界面发生了变化,那么很可能
-
定位器已更改的可能性最大。
性能,可以发挥作用。
可能有额外的步骤或已撤销一些步骤来完成相同的工作。
【讨论】:
以上是关于如果网站对其 UI 进行任何更改,selenium 网络自动化是不是仍然有效?的主要内容,如果未能解决你的问题,请参考以下文章