java - 我想在运行时更改元素的包含文本 - By.xpath("//a[contains(text(),'ProductName')]");
问题描述
我在屏幕上有多个产品,每个产品都与字符串“ProductName”不同。而不是将所有产品收集到页面上。我想制作任何动态或可重用的函数,以便我可以在函数上传递产品名称并且它应该识别元素
public findElement(String ProductName)
{
element= By.xpath("//a[contains(text(),'ProductName')]");
}
如果我将产品名称传递给 Apple,那么它应该给我定位器
element= By.xpath("//a[contains(text(),'apple')]");
解决方案
您可以执行以下操作:
public findElement(List<String> products)
{
for(String product : products){
String xpath = String.format("//a[contains(text(),'%s')]",product);
element= By.xpath(xpath);
}
}
推荐阅读
- angular - 失败:未捕获(承诺):错误:无法匹配任何路由。URL 段:“登录”。茉莉和角 6
- c++ - MFC/C++ ComboBox:禁用下拉关闭和打开的绘制(UI 冻结)
- javascript - 获取计算表达式的总和取决于Angular中的模板变量?
- python - 将 Pandas 数据框保存到 AWS Redshift 中的 PostgreSQL 服务器
- reactjs - 带有 react-form 库、预填充输入的受控组件
- symfony - JWTRefreshTokenBundle,类 gesdinet.jwtrefreshtoken 不存在
- guice - Google Guice:公开一个命名对象,但在没有名称的模块中保持它可用
- kubernetes - OpenEBS 是否支持 arm64 架构?
- sql - Oracle - 来自带有 * 参数的多个表的记录
- javascript - Vue JS 在生产模式下的行为不同