如果网站对其 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 网络自动化是不是仍然有效?的主要内容,如果未能解决你的问题,请参考以下文章

scrapy中selenium的应用

scrapy中selenium的应用

13-scrapy中selenium的应用

爬虫学习 15.scrapy中selenium的应用

UI按钮更改文本[关闭]

如何防止excel在打开CSV文件时对其进行任何更改