Selenium获取WebElement的id属性返回空值,求排查原因
解决Selenium获取id属性返回空字符串的问题
先看你提供的这段HTML代码:
<tr .."> <td> <input type="checkbox" id="chkTES_0" class="shftchkbox" data-id="-997278"> <span id="spTESCt_0" class="tesCount" data-key="3023005" title="This Test Execution Spec is not added yet">0</span> </td> <td ...></td> </tr>
你用element.find_elements(By.TAG_NAME,"td")[0].get_attribute("id")返回空字符串,问题出在你找错了元素!
仔细看HTML结构:第一个<td>标签本身根本没有id属性,带id的是它内部的<input>和<span>元素。你现在获取的是<td>的id,自然只能得到空字符串啦。
给你几个针对性的解决办法:
如果你要获取
<input>的id:
先定位到第一个<td>,再在它内部找到<input>元素,然后获取id:element.find_elements(By.TAG_NAME,"td")[0].find_element(By.TAG_NAME,"input").get_attribute("id")或者用更精准的CSS选择器直接定位,效率更高:
element.find_element(By.CSS_SELECTOR, "td input.shftchkbox").get_attribute("id")如果你要获取
<span>的id:
同样的思路,定位到<span>元素再取id:element.find_elements(By.TAG_NAME,"td")[0].find_element(By.TAG_NAME,"span").get_attribute("id")或者用CSS选择器简化:
element.find_element(By.CSS_SELECTOR, "td span.tesCount").get_attribute("id")
下次定位元素的时候,一定要看清楚目标属性属于哪个标签哦!
内容的提问来源于stack exchange,提问作者unholy_me
相关产品推荐
相关产品推荐

