我的 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/