python – 从所有元素中获取文本匹配Selenium中的模式
作者:互联网
我有一个网站包含以下形式的元素:
<td id="subject_23432423">content I want to read</td>
我如何使用Selenium RC(特别是Python绑定)来读取所有这些元素的内容?我已经完成了所有命令,虽然有很多选项可以找到单个元素,但是没有一个命令可以处理多个匹配的列表.例如,我可以使用以下方法找到特定元素的内容:
content = sel.get_text("td[@id='subject_23432423']")
但这假设我已经知道了id,我没有,因为它是动态生成的.
解决方法:
使用Selenium 1 API是不可能的,但是如果subject_始终存在于生成的id中,则可以调用使用XPath // td [contains(@ id,“subject_”)]定位元素的JavaScript.我不确定Selenium browserbot是否为IE提供XPath支持,因此您可能仅限于具有本机支持的浏览器.在Firefox中它将是:
var tds = document.evaluate("//td[contains(@id, \"subject_\")]", document, null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for ( var i = 0; i < tds.snapshotLength; i++) {
var td = tds.snapshotItem(i);
// get text using td.textContent and add it to array or whatever...
// and return it
}
return ...
您需要在代码中将此脚本声明为字符串,并通过selenium.getEval执行
但是,如果您能够切换到Selenium 2 (WebDriver),则可以使用其API.您需要使用findElementsBy传递XPath // td [contains(@id,“subject_”)]然后遍历返回的匹配数组并获取每个元素的文本
标签:selenium-rc,python,selenium 来源: https://codeday.me/bug/20190723/1517796.html