Python Selenium选定节点文本
我有一个Python Selenium选定节点文本,python,python-2.7,selenium,Python,Python 2.7,Selenium,我有一个html结构,如下所示 <div id="description"> wanted text <div class="text-smaller normal wine-user-description"> <a href = "/users/user1"> unwanted text</a> </div> </div> 但是上面的代码返回所有文本(需要的和不需要的)。我甚至试过 val
html
结构,如下所示
<div id="description">
wanted text
<div class="text-smaller normal wine-user-description">
<a href = "/users/user1"> unwanted text</a>
</div>
</div>
但是上面的代码返回所有文本(需要的和不需要的)。我甚至试过
val = self.driver.find_element_by_xpath('//div[@id="description"]/text()').text
但是我得到了一些xpath错误。这是我第一次使用硒,我有一些困难的时候。如果有人能帮助我,那将非常有帮助。尝试使用下面的jquery获取第一个节点中的文本
$('#description')[0].childNodes[0].nodeValue
我用你的HTML尝试了上面的代码,它对我很有效。如果你的站点中没有使用jquery,这将不起作用,那么你必须将jquery注入DOM,然后再尝试..将jquery注入DOM
如果使用python,我尝试使用java而不是python,然后使用browser代替JavascriptExecutor.execute_脚本有关详细信息,请参阅此xpath无法工作的原因有两个:
val =
self.driver.find_element_by_xpath('//div[@id="description"]').get_attribute('textContent')
我认为OP正在为
Selenium
寻找一个不支持jquery
选择器的解决方案currently@SaifurHi saifur…selenium支持jquery(前提是在DOM中使用/加载jquery,否则我们可以将其注入DOM并使用它)我几乎在我所有的测试脚本中都使用了jquery…我已经附上了我使用jquery获得的输出截图…请参考上面帖子中附带的截图。我误解了你的意思。当然,通过executeScript
也可以实现。好主意!你对这里有什么要求?只是为了验证文本或查找id为description
的节点?@Saifur:我需要检索div id=“description
”中的文本
String node_text=(String)((JavascriptExecutor)driver).executeScript("return $('#description')[0].childNodes[0].nodeValue");
System.out.println(node_text.trim());
val =
self.driver.find_element_by_xpath('//div[@id="description"]').get_attribute('textContent')