【问题标题】:Assert element color in Selenium IDE在 Selenium IDE 中断言元素颜色
【发布时间】:2012-10-08 02:45:34
【问题描述】:

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

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

【问题讨论】:

  • 请告诉我们您的尝试。

标签: html css selenium automation assert


【解决方案1】:

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

就像(我在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));

希望对你有所帮助。

【讨论】:

  • 非常感谢!但是,由于我是菜鸟,所以我对如何使用这些代码有点困惑。你能告诉我如何简单地使用这些代码以及如何只使用命令、目标和值框吗?
  • 哦……抱歉。我误会了。您的问题与 selnium IDE 有关。我使用 selenium webdriver +java。我是 selenium IDE 的菜鸟 :) 我可以向您解释如何设置 IDE 并编写测试,例如在java中
  • 没关系!我感谢您的帮助!请教我如何设置 IDE 并编写测试,例如在爪哇。谢谢!
【解决方案2】:

我在 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。
  • 通过打开系统添加 M2_HOME 环境变量 属性(WinKey + Pause),选择“高级”选项卡,然后 “环境变量”按钮,然后添加 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 中打开它们

问候

【讨论】:

    猜你喜欢
    • 2022-10-05
    • 1970-01-01
    • 2017-06-27
    • 2017-05-13
    • 2018-07-12
    • 1970-01-01
    • 2023-04-10
    • 2011-02-21
    • 2017-04-21
    相关资源
    最近更新 更多