typescript - 在元素中查找元素
问题描述
我正在尝试在特定元素中查找元素。
我的 HTML 结构是这样的:
<div>
<label>test</label>
<div>
<a>testlink</a>
<input type='text'></input>
<textarea></textarea>
</div>
</div>
我有基于其文本的标签,并且我试图在其兄弟下获取输入。我最初是想对其进行硬编码,但后来注意到我们有时在兄弟 div 下有一个额外的层,就像这样。
<div>
<label>test</label>
<div>
<div>
<a>testlink</a>
<input type='text'></input>
<textarea></textarea>
</div>
</div>
</div>
我尝试过的是:
const labelElement = await Selector('label').withText('test')
const inputField = labelElement.sibling('div').find('input').withAttribute('type', 'text')
问题是我要找回页面上的所有输入,而不仅仅是这个。我想这就是find所做的。
有没有办法只获得我需要的输入?
解决方案
Selector.sibling()
返回元素,Selector.find()
返回节点。两者都可以返回不止一个“东西”。
我会尝试使用Selector.nth()
,例如:
const labelElement = await Selector('label').withText('test')
const inputField = labelElement.sibling('div').nth(0).find('input').withAttribute('type', 'text')
推荐阅读
- spring-boot - Springboot应用找不到webjars添加的bootstrap和jquery
- firebase - Kitkat 上未显示 Android 通知
- json - Jmeter解析并断言Json对象数组
- categories - Pandas groupby 适用于多索引性能问题
- minimize - 多目标优化示例 Pyomo
- c# - 如何在 Visual Studio 2017 中手动添加 DiagnosticAnalyzer
- javascript - React Native - Deeplink 不适用于 android 的发布版本
- asp.net - 通过 ADFS 登录后,asp.net Microsoft.IdentityModel.Tokens.SecurityTokenException “找不到验证器”
- c# - Angular 5 和 ASP.NET Core 2.0 Web API 文件上传 - 文件损坏
- reactjs - 如何在 DrawerNavigator 中有条件地显示drawerLabel