XPath表达式//form[@id='search']选首个还是全部?变体写法是否可行?
关于XPath和Selenium元素选择的问题解答
针对
//form[@id='search']的疑问:
这个XPath表达式本身能匹配HTML中所有id为search的<form>元素,但你代码里用的是Selenium的find_element()(单数方法),它的逻辑就是只返回第一个匹配到的元素,所以实际只会拿到第一个符合条件的form。如果要获取所有匹配的元素,把find_element()改成find_elements()(复数方法)即可,无需修改原XPath。针对
//*form[@id='search']的疑问:
这个写法是错误的XPath语法,*作为通配符是用来匹配任意标签的,比如//*[@id='search']会匹配所有id为search的标签,但你要定位的是form标签,原XPath//form[@id='search']就已经是正确的匹配所有符合条件的form的表达式了。错误的//*form[@id='search']根本不会匹配到任何元素,更别说选中所有符合条件的标签。
内容的提问来源于stack exchange,提问作者Davi Américo
相关产品推荐
相关产品推荐

