PHPUnit Selenium,clickAndWait()函数不';我不在歌剧院工作
我在Opera中遇到了问题。如果我单击了测试代码中的元素,页面将不会加载。在Firefox、IE、Chrome和Safari等其他浏览器中,它工作正常 代码:PHPUnit Selenium,clickAndWait()函数不';我不在歌剧院工作,php,selenium,phpunit,opera,selenium-rc,Php,Selenium,Phpunit,Opera,Selenium Rc,我在Opera中遇到了问题。如果我单击了测试代码中的元素,页面将不会加载。在Firefox、IE、Chrome和Safari等其他浏览器中,它工作正常 代码: $browser->clickAndWait(link); 下面是SELENIUM REMOTE CONTROL的步骤: click(link) waitForPageToLoad(120000) 超时后,如果我单击浏览器中的链接,页面将重新加载 我有一辆自行车。2.31.0和Opera版本12.41,但我也在Opera 11.
$browser->clickAndWait(link);
下面是SELENIUM REMOTE CONTROL的步骤:
click(link)
waitForPageToLoad(120000)
超时后,如果我单击浏览器中的链接,页面将重新加载
我有一辆自行车。2.31.0和Opera版本12.41,但我也在Opera 11.50上进行了测试
你知道怎么回事吗?原始帖子中没有足够的信息来建议一个明确的解决方案,但与@Andre提供的注释相结合,“净化”浏览器会这样做,并反过来提供诸如“复制xPath”之类的函数,这可能会产生很大的误导,并在测试过程中导致许多问题,取决于xPath的结构 例如:
<html>
<head></head>
<body>
<div>
<table>
<tr>
<td>test</td>
</tr>
<tr>
<td>value</td>
</tr>
</table>
</div>
</body>
</html>
测试
价值
虽然上面的代码非常少,但浏览器会将测试的xPath报告为以下内容之一:
- /html/body/div/table/tr/td(在许多情况下都会返回测试和值)
- /html/body/div/table/tr[1]/td[1](更精确地匹配测试)
- /html/body/div/table/tbody/tr/td(注意添加的tbody)
- 该路径是在“已清理”的浏览器上检索的,然后在找不到该元素的浏览器上运行
- 该路径是在未“清理”的浏览器上检索的,然后在进行清理的浏览器上运行
这两个问题都导致不匹配。我有类似的问题,不幸的是,我提出的唯一解决方案是。。。添加“睡眠”。丑陋,但有效 单击弹出或创建的内容后,只需在单击函数“waitForElementPresent”或“waitForChange”后调用即可 clickAndWait=单击()+一些等待函数。。。。好的做法是在单击之前使用wait函数,这样可以在异步调用中节省您的时间
selenium.waitForElementPresent(“myFooElement”);
selenium.click(“myFooElement”);
我在FF中也遇到了这个问题,这是我提出的解决方案:
def wait_for_element_by_id(eid):
"Wait for an element to be present"
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, eid))
)
return []
您搜索了selenium bug tracker吗?是的,我搜索了selenium bug tracker,但没有找到解决问题的方法。是否有可能链接绑定到Opera未正确处理的Javascript事件?你能在Opera上手动点击链接吗?@DanChan,是的,我可以在测试模式Opera中点击这个链接,当我在没有selenium的情况下进行测试时,所有链接在Opera中都正常工作。你如何定位链接?css还是xpath?检查Opera中是否支持选择器语法