PHPUnit Selenium,clickAndWait()函数不';我不在歌剧院工作

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.

我在Opera中遇到了问题。如果我单击了测试代码中的元素,页面将不会加载。在Firefox、IE、Chrome和Safari等其他浏览器中,它工作正常

代码:

$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)
等等。显然,如果有一个更唯一的标识符可用(即id->/*[@id=“someElement”]),您不会遇到这个问题,但是在我们接管的许多项目中,单元测试最初只在一个浏览器上完成,我们看到了与报告的错误类似的错误,结果是“清理”浏览器确实会产生以下两个问题之一:

  • 该路径是在“已清理”的浏览器上检索的,然后在找不到该元素的浏览器上运行
  • 该路径是在未“清理”的浏览器上检索的,然后在进行清理的浏览器上运行

这两个问题都导致不匹配。

我有类似的问题,不幸的是,我提出的唯一解决方案是。。。添加“睡眠”。丑陋,但有效

单击弹出或创建的内容后,只需在单击函数“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中是否支持选择器语法