小编Bhu*_*van的帖子

Selenium:如何让web驱动程序在执行另一个测试之前等待页面刷新

我在TestNG中使用Selenium web Driver编写测试用例,我有一个场景,我按顺序运行多个测试(参见下文)

@Test(priority =1)
public void Test1(){
}
@Test(priority =2)
public void Test2(){ 
}
Run Code Online (Sandbox Code Playgroud)

两个测试都是AJAX调用,其中打开一个对话框,执行测试,然后关闭对话框,然后在页面顶部显示一条通知消息,并在每次成功测试后刷新页面.

问题是: Test2不等待页面刷新/重新加载.假设当Test1成功完成时,Test2将在页面刷新之前启动(即打开对话框,执行场景等).同时页面刷新(在成功执行Test1后必然会发生).现在,由于页面刷新,由于Test2打开的对话框不再存在,然后Test2失败.

(另外,我不知道刷新页面需要多长时间.因此,我不想在执行Test2之前使用Thread.sleep(xxxx))

另外,我不认为

driver.navigate().refresh()
Run Code Online (Sandbox Code Playgroud)

将它放在Test2之前将解决我的问题,因为在这种情况下我的页面将刷新两次.问题是通过代码进行刷新(不确定因为可能需要1秒或3秒或5秒)

java selenium selenium-webdriver

30
推荐指数
2
解决办法
7万
查看次数

使用@RunWith Annotation和powerMock时出现问题

最初我在junits中只使用Mockito所以我在@RunWith注释中使用了SpringJUnit4ClassRunner.class,即

@RunWith(SpringJUnit4ClassRunner.class) 
Run Code Online (Sandbox Code Playgroud)

由于春季依赖注入工作正常,并正在通过

@Autowired

Someservice someservice ;
Run Code Online (Sandbox Code Playgroud)

但是现在,我还在其中集成了PowerMock.

因此,根据doc,我已经用@RunWith注释替换了提到的类

@RunWith(PowerMockRunner.class)
Run Code Online (Sandbox Code Playgroud)

但是现在,有些服务似乎是空的.有没有办法在@RunWith注释中同时使用SpringJUnit4ClassRunner.classPowerMockRunner.class

java junit mockito powermock

12
推荐指数
2
解决办法
2万
查看次数

eclipse调试器在Junit中不使用power规则

我正在使用Mockito + PowerMock + PowerRule开发Junits

请参阅我之前的问题:使用Mockito在Junit中找不到PowerMock和PowerRule的javassist

现在我已经让我的Junits成功运行了,我遇到了一个奇怪的问题,即Eclipse调试器无法运行,即尽管我的测试正在执行,但我还没有停在断点上(使用SOP语句检查)

现在,当我从Junits中删除PowerRule时,调试器再次开始工作

我不知道为什么会这样.如果您对此有任何想法,请告诉我

谢谢

eclipse junit powermock

9
推荐指数
1
解决办法
828
查看次数

CXF/JAX-RS:从拦截器返回自定义响应

我们需要在REST调用期间发生异常时返回自定义错误代码和错误消息.我们已经创建了一个异常映射器提供程序,它适用于应用程序代码中的异常.但是,当从CXF代码发生异常时(例如,形成我编写的CustomValidationInterceptor),它不起作用.

例如,如果我请求无效路径参数(例如无效的phoneNumber).在这种情况下,我们需要返回一个JSON格式的自定义错误代码和错误消息,但即使我们创建以处理WebApplicationException一个例外映射器提供商这是行不通的.

有没有办法处理来自cxf拦截器的异常并返回对用户的响应,如下所示?

{
"errorDetail": {
"errorCode": "404",
"errorMessage": "Bad Request"
}
}
Run Code Online (Sandbox Code Playgroud)

我的CustomValidationInterceptor的代码片段:

public class CustomValidationInterceptor extends AbstractPhaseInterceptor<Message>{

    public CustomValidationInterceptor() {
        super(Phase.PRE_INVOKE); // Put this interceptor in this phase
    }

    public void handleMessage(Message message) {

        MetadataMap<String, String> metadataMap = (MetadataMap<String, String>) message.get("jaxrs.template.parameters");

        if(null != metadataMap) {
            List<String> list = metadataMap.get("phoneNumber");
            if(null != list) {
                String phoneNumber = list.get(0);
                boolean result = validatePhoneNumber(phoneNumber);
                if(!result){
                    throw new TelusServiceException(Response.status(Response.Status.BAD_REQUEST).build(), 400, "phone number not valid");
                }
            } else {
                throw new TelusServiceException(Response.status(Response.Status.BAD_REQUEST).build(), 400, …
Run Code Online (Sandbox Code Playgroud)

java cxf exception jax-rs interceptor

9
推荐指数
1
解决办法
1万
查看次数

使用Mockito在JUnit中使用PowerMock和PowerRule获取javassist.NotFoundException

我已经将JUnit中的PowerMock和PowerRule与Mockito集成在一起.

这是我的依赖项:

<dependency>
        <groupId>javassist</groupId>
        <artifactId>javassist</artifactId>
        <version>3.12.0.GA</version>
      </dependency>
<dependency>
        <groupId>asm</groupId>
        <artifactId>asm</artifactId>
        <version>3.3.1</version>
</dependency>

 <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>2.2.2</version>
 </dependency>
 <dependency>
        <groupId>org.powermoc</groupId>
    <artifactId>powermock-module-junit4</artifactId>
    <version>1.4.12</version>
    <scope>test</scope>
    </dependency>
 <dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-api-mockito</artifactId>
    <version>1.4.12</version>
    <scope>test</scope>
 </dependency>
 <dependency>
       <groupId>org.powermock</groupId>
       <artifactId>powermock-module-junit4-rule</artifactId>
       <version>1.4.12</version>
       <scope>test</scope>
 </dependency>
 <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-classloading-objenesis</artifactId>
        <version>1.4.12</version>
        <scope>test</scope>
 </dependency>
Run Code Online (Sandbox Code Playgroud)

我的测试类是:

public class TestClass extends AbstractShiroTest{
    @Rule
    public PowerMockRule rule = new PowerMockRule();
    @Autowired
    SomeService someService;
    @Before

    public void setUp(){
    Map<String, Object> newMap = new HashMap<String, Object>();
    newMap.put("userTimeZone", "Asia/Calcutta");
    Subject subjectUnderTest = mock(Subject.class);
             when(subjectUnderTest.getPrincipal()).thenReturn(LMPTestConstants.USER_NAME);
    Session session = mock(Session.class);
    when(session.getAttribute(LMPCoreConstants.USER_DETAILS_MAP)).thenReturn(newMap); …
Run Code Online (Sandbox Code Playgroud)

java junit4 mockito powermock maven

7
推荐指数
1
解决办法
2万
查看次数

Selenium:如何将数据添加到文本框或文本区域

我正在使用Selenium Web驱动程序.我有一个文本区域,其中写入了一些文本.现在,我怎么能在前面加上它的一些文本/ HTML或在特定位置插入数据?

以下代码附加到文本区域/文本框

driver.findElement(By.xpath("textBox/textArea")).sendKeys("abc");
Run Code Online (Sandbox Code Playgroud)

即.如果文本区域/文本框包含123.上面的结果将是123abc.但我想要abc123或12abc3

PS:我正在测试"电子邮件回复"功能.因此,作为用户,当您回复邮件时,您不会复制文本,然后清除所有文本,然后在写下新文本后将所有文本复制回来,如下所示:

WebElement element = driver.findElement(By.xpath("textBox/textarea"));
String previousText = element.getAttribute("value");
element.clear();
element.sendKeys("abc" + previousText);
Run Code Online (Sandbox Code Playgroud)

请帮忙...

selenium selenium-webdriver

4
推荐指数
1
解决办法
2万
查看次数

与 WAS 7 不兼容的 neethi.jar

我正在 websphere 7 中使用 neethi-3.0.2 部署一个应用程序 Apache CXF-2.7.5。我遇到以下错误。我的应用程序是弹簧驱动的。当我将 Apache CXF 降级为 apache CXF-2.3.5 时。应用程序部署成功。

同样在Tomcat7中完美运行。

通过在 pom.xml 文件中添加(或覆盖)neethi.jar(使用旧版本 --> 2.5.x)的依赖项,我能够在 Tomcat 上重现此问题。

注意: Apache CXF 2.7.5 带有最新版本的 neethi.jar (3.0.2),因此不会在 Tomcat7 上引起问题。

Web Sphere 是否采用了旧版本的neethi.jar

堆栈跟踪如下:

[7/9/13 19:46:38:577 GMT+05:30] 00000012 FfdcProvider  I com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I: FFDC Incident emitted on /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/ffdc/server1_2a7e2a7e_13.07.09_19.46.38.57558021.txt com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest() 309
[7/9/13 19:46:38:582 GMT+05:30] 00000012 webapp        E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[CXFServlet]: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cxf' defined in class path resource [META-INF/cxf/cxf.xml]: Instantiation of bean …
Run Code Online (Sandbox Code Playgroud)

java websphere web-services cxf websphere-7

4
推荐指数
1
解决办法
2万
查看次数

如何用mockito模拟静态方法?

我正在为Junits使用mockito

我知道mockito donot模拟静态方法,但有没有办法解决这个问题,而不是使用powermock?

谢谢

java junit mockito

3
推荐指数
1
解决办法
6016
查看次数

如何使用带有YUI压缩器的maven-minify-plugin在构建时压缩java中的JS和css

我想在YUI压缩器中使用maven-minify插件在构建时压缩JS和css.我的JS和CSS保存在不同的文件夹中.例如.'X'JS文件存在于一个文件夹中,其余文件存在于不同的文件夹中.CSS文件的情况也是如此.

另外我想知道,如果文件名从jsFileName.js变为类似jsFileName-min.js的话,如何在JSP中更改JS和CSS 的引用

请让我知道如何使用此插件,因为我对此完全陌生.

javascript java yui maven-2 minify

2
推荐指数
1
解决办法
9051
查看次数

如何在js中读取json对象

我的控制器有一个方法,它返回一个 jsonArray 的字符串表示为

jsonArray.toString()

现在下面是ajax方法

function loadPropertyFile(url) {
$.ajax({
    type: "GET",
    url: url, 
    dataType: "text",
    success: function(response){
        var obj = jQuery.parseJSON(response);
        alert(obj);
    }
});
Run Code Online (Sandbox Code Playgroud)

}

这里解析出来的变量obj是

"[{"portal.home":"Home"},{"displaytag.tracking.id":"Item ID"},{"displaytag.tracking.itemName":"Item Name"},{"displaytag.tracking.itemType":"Type"}]"
Run Code Online (Sandbox Code Playgroud)

现在我想从 js 中的键访问值

IE。我想访问键“displaytag.tracking.id”的值

问题是当我在做console.log(obj[0]["portal.home"]); 它给了我错误TypeError: obj[0] is undefined

我该怎么办 ?

javascript jquery json

2
推荐指数
1
解决办法
2万
查看次数