首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Selenium (C#)通过可访问的角色和名称查找元素

使用Selenium (C#)通过可访问的角色和名称查找元素
EN

Stack Overflow用户
提问于 2022-05-17 12:32:26
回答 1查看 390关注 0票数 0

是否可以使用可访问性名称和角色使用C# selenium找到元素?

有关更多细节,请参见规范:https://www.w3.org/TR/accname-1.1

其基本原理是,我们有一个具有大量单元测试的react项目,这些单元测试已经使用了基于角色/名称的查询的目标元素--重用角色/名称是很好的,而不必更改标记来添加纯粹用于基于硒的验收测试的ids。是否存在与测试库中的getByRole查询等效的selenium?

所需的示例

构成部分:

代码语言:javascript
复制
<button>Cancel</button>

单元测试:

代码语言:javascript
复制
const cancelButton = screen.getByRole("button", { name: "Cancel" })

验收测试(如何完成?):

代码语言:javascript
复制
IWebElement cancelButton = driver.FindElement(By.???("button", "cancel"));

试图避免

构成部分:

代码语言:javascript
复制
<button id="cancel-button">Cancel</button>

单元测试:

代码语言:javascript
复制
const cancelButton = screen.getByRole("button", { name: "Cancel" })

验收测试:

代码语言:javascript
复制
IWebElement cancelButton = driver.FindElement(By.Id("cancel-button"));
EN

回答 1

Stack Overflow用户

发布于 2022-05-17 17:21:00

如果您想要一个button元素完全包含字符串'Cancel' (即您想要一个精确的匹配),那么运行以下命令

代码语言:javascript
复制
driver.FindElement(By.XPath('//button[text()="Cancel"]'))

否则,如果字符串(如'foo Cancel bar' )也被接受,则运行以下命令

代码语言:javascript
复制
driver.FindElement(By.XPath('//button[contains(text(), "Cancel")]'))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72274130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档