javascript - 如何与具有这样 id 的元素交互 : "inputText115:3551;a" using Selnium + webdriverIO + nodeJS

标签 javascript node.js selenium salesforce-lightning

我的 Sales-Force Lightening 应用程序中有一个元素,它是一个 HTML 应用程序。该元素是一个文本字段。

我需要将数据输入测试字段。这是文本字段的id(如下):

inputText115:3551;a

我遇到的问题是:“3551”也可能是“WXYZ”或“ABCD”,因为该值是由应用程序生成的动态值(Sales-Force Lightening 在其应用程序中到处都充满了这个值)。使用 selenium 测试它变得很困难,因为根据浏览器和 session ID,该值会发生变化。

到目前为止我还没能做到。 我尝试过:

.click('[href="#/sObject/0012C000004TMmQQAW/view"]') <-- by href
.click('/html/body/div[5]/div[1]/section/div[1]/div[1]/div[2]/div/div/div[2]/div[1]/div/div[2]/div/div[4]/div/div/div[1]/table/tbody/tr[1]/th/span/a')  <-- by xpath

到目前为止,没有什么对我有用。

如何使用具有动态 ID 的 NodeJS 来交互/选择 selenium 中的元素?

最佳答案


也许您可以尝试获取动态更改 ID 的父元素,然后使用其他一些属性作为类或标记名称来获取它。

我知道你的问题是关于 Node 的,但我会用java做一个例子,因为这是我尝试过Selenium的例子,我认为这个想法对你有用。

即对于以下 HTML,假设您有一个 div 元素作为 input 元素的父元素:

<div id="myDiv">
    <input type="text" id="inputText115:3551;a">
</div>

您可以通过它的父元素进行一些导航,如下所示:

WebElement parentElement = driver.findElement(By.id("myDiv"));
parentElement.findElement(By.tagName("input")).click(); //here you're clicking the element with the changing ID

关于javascript - 如何与具有这样 id 的元素交互 : "inputText115:3551;a" using Selnium + webdriverIO + nodeJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42238738/

相关文章:

Javascript - 如何删除单词之间的所有额外间距

mysql - 相同模型的 2 个外键的关联关联

java - Tomcat创建0字节文件

java - 搜索结果 - 将 webElement 列表转换为字符串,如果该列表中有某个字符串可用则返回 true

python - selenium无法在知乎提交答案

javascript - 增加仅由有序列表 <ol> 创建的新 <li> 元素的 id

javascript - 如何: Extend the Aurelia Logger with additional methods

javascript - 为什么express会匹配两条路线?

Node.js 服务器对 HTTPS 的请求足以加密吗?

javascript - 无法从 src 文件夹运行简单的 babel 到 dist