UI Angular 应用程序中文本输入字段中的文本在 DevTools 选择器中不可见 – 如何在自动化测试中找到它?
Text in text input fields in UI Angular application not visible in DevTools selectors – how to reach it in automation tests?
我想使用 C# + Selenium 在 Angular 中编写输入文本字段的自动化测试。问题是 UI 中 Angular 应用程序上的书面文本在 DevTools 中不可见,在输入中不可见,因此自动化测试无法通过 CSS 选择器或 Xpath 访问它。
如何在自动化测试中到达 DevTools 中的文本?
通常,输入字段文本值不会被元素属性(DOM 属性)反映,因此无法被任何选择器跟踪。
但是你可以在元素属性中找到值。
要读取值,您可以调用 getAttribute
for WebElement
。
driver.findElement(by).getAttribute('value')
如果你想按值查找特定元素(使用值作为选择器),你应该得到所有具有相同选择器的元素
driver.findElements(by)
然后迭代并检查 getAttribute('value')
是否匹配。
这是一种通用方法,Angular 元素可能会引入一些差异,但无论如何,请尝试查看元素属性。
我想使用 C# + Selenium 在 Angular 中编写输入文本字段的自动化测试。问题是 UI 中 Angular 应用程序上的书面文本在 DevTools 中不可见,在输入中不可见,因此自动化测试无法通过 CSS 选择器或 Xpath 访问它。 如何在自动化测试中到达 DevTools 中的文本?
通常,输入字段文本值不会被元素属性(DOM 属性)反映,因此无法被任何选择器跟踪。
但是你可以在元素属性中找到值。
要读取值,您可以调用 getAttribute
for WebElement
。
driver.findElement(by).getAttribute('value')
如果你想按值查找特定元素(使用值作为选择器),你应该得到所有具有相同选择器的元素
driver.findElements(by)
然后迭代并检查 getAttribute('value')
是否匹配。
这是一种通用方法,Angular 元素可能会引入一些差异,但无论如何,请尝试查看元素属性。