【发布时间】:2014-08-14 01:23:27
【问题描述】:
我有一些包含不同产品的页面,应该随机选择其中一个。 我已经对 javascript 进行了测试,但是在尝试使用 node.js 和 selenium 编写它时遇到了问题。
在我的测试页面上,我得到了下一个结构
<div class="products">
<table width="600" cellspacing="6">
<tbody>
<tr>
<td>
<a href="phones-59.php"></a>
</td>
<td>...
</td>
</tr>
<tr>...</tr>
...
所以下一个示例正在使用 javascript,我得到了我需要的所有链接
links = document.getElementById('products').getElementsByTagName('a');
然后我使用随机并选择一些链接,类似这样(在此处获取示例Choosing a link at random)
randomlink = Math.round(Math.random() * (links.length+1));
links[randomlink].click();
没什么特别的,但是当我在 node.js 中尝试过这种技巧时,我无法访问链接。尝试使用 click() 和其他函数时出现错误
driver.findElement(webdriver.By.id('products')).findElements(webdriver.By.tagName('a'));
那么我如何点击“产品”块中的随机链接? 谢谢
PS 我已经从 firefox 开发者控制台复制了“唯一选择器”,但不知道如何正确使用它(我尝试使用 xpath 没有成功)
"products > table:nth-child(1) > tbody:nth-child(1)"
更新 我也尝试过这样的构造并获得正确数量的链接,但无法访问它们
ll = driver.findElement(webdriver.By.id('products'));
lk = ll.findElements(webdriver.By.tagName('a')).then(function(txt) {
logger.info("lk length: " + txt.length); });
【问题讨论】:
标签: javascript node.js selenium selenium-webdriver