为什么webelement的测试有时候从源代码的角度看是不正常的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么webelement的测试有时候从源代码的角度看是不正常的相关的知识,希望对你有一定的参考价值。
the source code that has issue
请参考图片
页面中有一个选择
我使用xpath
".//*[@id='edit-comanyinfo-window']//li[text()='20-99']"
找到元素
但有时,文字显示如下:
"
20
-
99
"
为什么?
它并不总是这样显示
我知道还有其他方法来定位元素
我只是想明白为什么!
其他时间的某些页面
这是正常的,html源代码中的元素是“20-99”
答案
您看到的结果是WebElement
的绝对表示:
".//*[@id='edit-comanyinfo-window']//li[text()='20-99']"
出现在DOM Tree
中的代表如下:
"
20
-
99
"
您的下一个问题是,为什么我们将元素视为:
20-99
这是因为与javascript
相关的The HTML DOM (Document Object Model)
JavaScript的力量:
加载网页时,Web Browser
会创建页面的Document Object Model
。 HTML DOM Model
被构造为对象树,如下图所示:
使用对象模型,JavaScript
可以获得创建动态HTML所需的全部功能,因为:
JavaScript
可以change
页面中的所有HTML elements
JavaScript
可以change
页面中的所有HTML attributes
JavaScript
可以change
页面中的所有CSS styles
JavaScript
可以remove
现有HTML elements and attributes
JavaScript
可以add new
HTML elements and attributes
JavaScript
可以react
到页面中所有现有的HTML events
JavaScript
可以在页面中使用create new
HTML events
WebElement
布局的变化是由于JavaScript
的存在
以上是关于为什么webelement的测试有时候从源代码的角度看是不正常的的主要内容,如果未能解决你的问题,请参考以下文章
自动化测试 selenium中WebDriver 和WebElement的区别
在 Selenium 测试中使用 XPath 通过文本获取 WebElement
在 selenium 中定位 WebElements 的子节点