我试图从一个使用AngularJS的网站上的动态表中获取数据。我用Selenium来浏览网站。在
目前,我的问题是我无法标识动态表,因为没有标记。此外,行的id还有字符串形式的动态名称,这使问题更加复杂。感谢任何帮助。在
我尝试过按ID/XPATH搜索并将它们添加到元素列表中。没有成功。在
我需要的信息包含在一个由多个参数(收集日期)动态生成的大型表中:
<tctable id="tweb_EPVisitNumber_List_1">
有多行,包含多个其他参数。下面是我感兴趣的一个小专栏的例子。我想从生成的表中的所有元素获取所有日期。在
^{pr2}$随着表的进展,ID将变为动态字符串,例如,其他列/行中的下一个元素将是:
id="web_EPVisitNumber_List_1-row-1-item-CollectionDate"
id="web_EPVisitNumber_List_1-row-2-item-CollectionDate"
id="web_EPVisitNumber_List_1-row-3-item-CollectionDate"
等等
我的问题是,首先我无法在较大的表中找到特定的元素,而且当字符串动态变化时,我也无法遍历它。在
您必须找到元素的一些公共属性,并基于它构造一个定位器。例如,在给定的示例中,所有感兴趣的
span
的id中都有“CollectionDate”,但没有“-label”(列标题有它)。因此,一个xpath将是:
另一个观察-所有“有趣”的都是
^{pr2}$div
中的span
,它位于tccol
中,除了第一个是列标题:要从生成的表中的所有元素中获取所有日期,因为这些元素是Angular元素,您需要归纳WebDriverWait以获得位于的所有元素的可见性,您可以使用以下解决方案:
使用
XPATH
:优化方式:
注意:您必须添加以下导入:
相关问题 更多 >
编程相关推荐