一个简单的需求:如何修改HTML Source,以便特定HTML元素的每个innerhtml都是唯一的。一个简单的例子可以更清楚地解释同样的事情:
<html>
<a href="/hello/doit.do"><img src="Button.bmp" border="0"></a>
<a href="/hello/doit.do">A Real Link</a>
</html>
如果您注意到,用户会将其视为文本链接和图像链接。如果我希望仅通过构建这样的CSS定位器来使用属性来找到这个元素:
loc = 'css=a[href="/hello/doit.do"]'
Selenium会找到两个元素。 在Python 2.7中使用Selenium RC Client,我希望简单地添加一个随机数作为ID属性,以便将它们分开。我的问题是,如何遍历所有常见的innerHTML并添加一个随机数?
据我所知,
get_css_count(loc)
只能得到你的数字= 2.我需要的是每个内部HTML,以便插入一个唯一的属性?
长话短说,硒有get_attribute(attributeLocator)
,我想知道是否有set_attribute(attributeLocator, value)
?
答案 0 :(得分:0)
你真的需要使用Selenium修改DOM吗?您可以使用@racar建议的页面js更改DOM(例如,对于jQuery):
$(function() {
var i = 1;
$('a[href="/hello/doit.do"]').each(function() {
$(this).attr('id', 'link_' + i);
i += 1;
});
});
这将为您的所有链接添加ID&#34; link_1&#34;,&#34; link_2&#34;,...。
或者您可以在渲染HTML时添加该ID,如果您自己渲染它。可能如果你分享你的真实任务,为什么你需要分开这些链接,我们可以建议一个更好的解决方案。