4

我正在尝试设置一个测试自动化,它会在单击时断言元素颜色。但是,我找不到正确的方法来做到这一点。我是硒新手,我已经尝试了所有可能的方法,但失败了。

HTML:

<a class="mg-friend-12345 friend selected" title="test" data-cid="12345" style="">

CSS:

.imweb #mgifting-dialog .mg-friends .friend.selected, .imweb #mgifting-dialog .mg-friends .non-friend.selected {
  background-color: #9DD4FD;
}
4

2 回答 2

2

恕我直言,想法如下:我们只需要在单击之前获取元素的 css 属性(颜色,特别是)。并在单击后获取元素的 css 属性(颜色)。

所以它就像(我在java上工作,我们将使用jsExecutor执行一段javascript来实现getColor函数。它将采用元素的css选择器。并返回它的颜色):

public String jsGetColor(String css){
        JavascriptExecutor js = (JavascriptExecutor) driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("var x=$(\'"+css+"\');");
        stringBuilder.append("return x.css('color')");
        //stringBuilder.append("return x.css('background-color')");
        String res= (String) js.executeScript(stringBuilder.toString());
        return res;
    }

String cssSelectorLink="a[class='mg-friend-12345 friend selected']";
WebElement linkToClick = driver.findElemebt(By.cssSelector(cssSelectorLink));
String colorBeforeClick = jsGetColor(cssSelectorLink);
linkToClick.click();
String colorAfterClick = jsGetColor(cssSelectorLink);
Assert.assertFalse(colorBeforeClick.equals(colorAfterClick));

希望对您有所帮助。

于 2012-10-17T19:15:05.557 回答
1

好吧,我在 intelij IDEA 工作。所以 setUp 编写硒测试,例如如下:

1)安装maven

  • 将分发包解压缩,即 apache-maven-3.0.4-bin.zip 到您希望安装 Maven 3.0.4 的目录。这些说明假设您选择了 C:\Program Files\Apache Software Foundation。将从存档中创建子目录 apache-maven-3.0.4。
  • 通过打开系统属性(WinKey + Pause)添加 M2_HOME 环境变量,选择“高级”选项卡和“环境变量”按钮,然后在用户变量中添加 M2_HOME 变量,值为 C:\Program Files\ Apache 软件基金会\apache-maven-3.0.4。确保省略路径周围的任何引号,即使它包含空格。 
  • 在同一个对话框中,在用户变量中添加 M2 环境变量,其值为 %M2_HOME%\bin。

2)安装jdk 3)在此处输入图像描述

4) 验证您设置的所有环境变量是否正确 在此处输入图像描述 5) 运行 intelij IDEA 选择项目结构以设置安装的 JDK 在此处输入图像描述 6) 按 New.select jsdk。写入我们安装java的路径,例如C:\ Program Files \ Java \ jdk1.6.0_29 在此处输入图像描述 7)从头开始创建新项目 在此处输入图像描述 8)maven模块 在此处输入图像描述 9)在此处输入图像描述 10)在此处输入图像描述 11)添加到POM适当的依赖项: 在此处输入图像描述

   <dependency>
 <groupId>org.seleniumhq.selenium</groupId> 
<artifactId>selenium-java</artifactId> 
<version>2.24.1</version> 
</dependency> 

12)如果还是有红线下划线,按alt+enter就可以了>>idea应该会自动提示自动导入。

13)项目中的测试结构 在此处输入图像描述

14)硒测试的常用结构

import com.thoughtworks.selenium.SeleneseTestBase;
import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

import java.util.concurrent.TimeUnit;

public class HomePageTest extends SeleneseTestBase{

    static WebDriver driver;

    @Before
    public void openFirefox(){

        driver = new FirefoxDriver();
        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);

    }

    @Test
    public void testHomePage(){
        driver.get("https://www.google.by/");
        WebElement search = driver.findElement(By.xpath("//*[@id=\"gbqfq\"]"));
        search.sendKeys("laptop");
        search.submit();

    }

    @After
    public void closeFirefox(){
        // driver.quit();
    }
}

15) 也不要忘记您可以将您在 selenium IDE 中创建的测试导出为 JUNIT4- selenium 并在 IDEA 中打开它们 在此处输入图像描述

问候

于 2012-10-19T11:16:27.507 回答