在Selenium IDE中断言元素颜色

4

我将尝试设置一个测试自动化程序,当点击元素时会断言其颜色。然而,我找不到正确的方法来实现它。作为一个 Selenium 新手,我已经尝试了所有可能的方法,但都失败了。

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;
}

请告诉我们你尝试过什么。 - Void Ray
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));

希望这对您有所帮助。


非常感谢!但是,我有点困惑如何使用这些代码,因为我是个新手哈哈。你能告诉我如何简单地使用这些代码以及如何使用命令、目标和值框吗? - user1754182
哦,抱歉。我弄混了。你的问题与Selenium IDE有关。而我使用的是Selenium WebDriver + Java。我在Selenium IDE方面是新手:) 我可以向你解释如何设置IDE并编写您的测试,例如使用Java。 - eugene.polschikov
没关系!我很感激你的帮助!请教我如何设置IDE并编写我的测试,例如Java。谢谢! - user1754182

1

我在使用IntelliJ IDEA进行工作。因此,设置编写Selenium测试如下:

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变量并将其值设置为C:\ Program Files \ Apache Software Foundation \ apache-maven-3.0.4,来添加M2_HOME环境变量。请确保省略路径周围的任何引号,即使它包含空格也是如此。
  • 在同一对话框中,在用户变量中添加M2环境变量,并将其值设置为%M2_HOME%\bin。

2)安装JDK 3)enter image description here

4) 确认您已正确设置所有环境变量 enter image description here 5) 运行Intelij IDEA 选择项目结构以设置已安装的JDK enter image description here 6) 按New键,选择jsdk。写入我们安装Java的路径,例如C:\Program Files\Java\jdk1.6.0_29 enter image description here 7) 从头开始创建新项目 enter image description here 8) Maven模块 enter image description here 9) enter image description here 10) enter image description here 11) 添加适当的依赖项到POM: enter image description here

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

12) 如果仍然有红线下划线,按alt+enter键>>应该自动建议自动导入。

13) 项目中的测试结构 enter image description here

14) Selenium测试的常见结构

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中打开它们。 enter image description here

敬礼


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接