最近在用12306买火车票的时候,刷新页面后那么多条件都没了,因为懒得手动勾选,遂想写代码来实现简单的条件勾选。页面里使用了太多的label标签,代码触发点击必须要先获取到对应的元素,由于不知道具体怎么根据文本来筛选相应的label标签,只能用数数来确定某条件是label数组的第几个来获取,这样有很多缺点,如不同页面上相同label的序号可能不同,label那么多数数太麻烦,页面变化等等。google后看到神站stackoverflow的答案,尝试后瞬间解惑,链接为 点击查看 ,下面把精彩答案摘要如下。
问题
如下的html片段,怎么来获取这个label标签呢?
<label for="checkbox">硬座</label>
stackoverflow的答案
使用 :contains() 选择符,如下代码段。
这里需要注意的是,匹配的文本可以直接出现在所选元素中,或者出现在该元素的任一个后代中,或其组合。与属性值选择符相比,选择符 :contains() 括号内可以直接写上文字(即不使用引号),也可以选择用引号括起来。只有含有匹配文本的元素才能(也一定)被选中。
<