【发布时间】:2021-04-10 02:50:14
【问题描述】:
我想做的是单击页面上的所有链接并关闭即将出现的选项卡。它们位于:
<ul>
<li>
<a href=#>random text</a>
</li>
<li>...
由于要点击的链接很多,我尝试了类似的方法:
Click All Links
Set Global Variable ${i} 1
${elementCount}= Execute Javascript return document.querySelectorAll('a').length
FOR ${i} IN RANGE ${elementCount}
Execute Javascript document.getElementsByTagName('a')[i].click();
Run Keyword and Ignore Error Delete Tab
Exit For Loop If ${i} == elementCount
END
Log Exited
Delete Tab
Sleep ${Delay_short}
${title_var} Get Window Titles
Select Window title=${title_var}[1]
Close Window
但我无法超过第一个返回长度,因为 ${elementCount} 总是显示值为 0:
Executing JavaScript:
return document.querySelectorAll('a').length
Without any arguments.
20210104 10:20:26.687 : INFO : ${elementCount} = 0
任何进一步的帮助也将不胜感激。
【问题讨论】:
-
这一行没有问题:
${elementCount}= Execute Javascript return document.querySelectorAll('a').length。链接不是 iframe 中的吗? -
不,那里没有 iframe。如果我查看 DOM,它的字面意思是
<body><ul><li>::marker<a></a><br><em></em></li>带有大量的 li 元素。
标签: javascript selenium extjs robotframework return-value