Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用SeleniumWeb驱动程序/Java验证表中的彩色编码背景_Java_Html_Selenium_Xpath_Colors - Fatal编程技术网

如何使用SeleniumWeb驱动程序/Java验证表中的彩色编码背景

如何使用SeleniumWeb驱动程序/Java验证表中的彩色编码背景,java,html,selenium,xpath,colors,Java,Html,Selenium,Xpath,Colors,我想验证表中颜色编码背景的特定值。颜色代码是背景色:rgb(96192,96)。我在页面上有5个不同的链接。每个链接都有相同的背景色。我需要验证背景颜色是否显示为rgb(96192,96)的每个链接。如果颜色代码是其他RGB(96192,96),则代码应该考虑链接/服务器下降。 页面上显示的五个值/链接为Ssi-1-a、Ssi-2-a、Ssi-3-a、Ssi-4-a和Ssi-5-a 我如何使用Xpath或任何其他方法验证这一点?提供以下代码 <html> <head&g

我想验证表中颜色编码背景的特定值。颜色代码是背景色:rgb(96192,96)。我在页面上有5个不同的链接。每个链接都有相同的背景色。我需要验证背景颜色是否显示为rgb(96192,96)的每个链接。如果颜色代码是其他RGB(96192,96),则代码应该考虑链接/服务器下降。 页面上显示的五个值/链接为Ssi-1-a、Ssi-2-a、Ssi-3-a、Ssi-4-a和Ssi-5-a

我如何使用Xpath或任何其他方法验证这一点?提供以下代码

<html>
    <head>
    <body>
        <b>Status as of </b>
        Wed Oct 25 16:57:57 2017
        <br/>
        <br/>
        This page shows the current version and build date of the SSI code loaded into the JVMs that constitute the environment
        you selected.
        <br/>
        <br/>
        <br/>
        <div style="float:left">
            <table style="display:inline-table" width="500" border="1">
                <tbody>
                <tr>
                <tr>
                <tr>
                    <th>Prod</th>
                    <td style="background-color:rgb(96,192,96)" align="center">
                        <a href="https://XXXXXXXXXXXXXX-XXX.net:XXXXXX/ssiadmin/">Ssi-1-a</a>
                    </td>
                </tr>
                <tr>
                <tr>
                <tr>
                <tr>
                </tbody>
            </table>
        </div>
    </body>
</html>

截至
2017年10月25日星期三16:57:57


此页面显示加载到构成环境的JVM中的SSI代码的当前版本和生成日期 你选择了。



您可以使用WebElement的getAttribute方法来分析style属性的值。下面的代码应该让您大致了解如何执行此操作:

WebElement linkToCheck = driver.findElement(By.xpath("xpathOfTheLink"));
if(!linkToCheck.getAttribute("style").contains("rgb(96,192,96)")){
    // server is down, --> does some action
}
其中
XPathOfLink
是要检查的链接的xpath。如果您有5个不同的链接,则必须创建5个xpath,或者使用动态xpath,使用上面的代码检查循环中的每个xpath

要小心,因为正如这里提到的:

“style”属性将尽可能转换为带有尾随分号的文本表示形式


因此,您可能需要检查它是否包含“rgb(96192,96)”以外的内容。我允许您尝试,或者提供一个带有给定html的url,这样我就可以尝试(我很想看到结果)。

您可以使用WebElement的getAttribute方法来分析style属性的值。下面的代码应该让您大致了解如何执行此操作:

WebElement linkToCheck = driver.findElement(By.xpath("xpathOfTheLink"));
if(!linkToCheck.getAttribute("style").contains("rgb(96,192,96)")){
    // server is down, --> does some action
}
其中
XPathOfLink
是要检查的链接的xpath。如果您有5个不同的链接,则必须创建5个xpath,或者使用动态xpath,使用上面的代码检查循环中的每个xpath

要小心,因为正如这里提到的:

“style”属性将尽可能转换为带有尾随分号的文本表示形式


因此,您可能需要检查它是否包含“rgb(96192,96)”以外的内容。我可以让你试试,或者提供一个带有给定html的url,这样我就可以试试(我很想看到结果)。

截图并确定目标位置像素的颜色。您还可以使用
driver.findElement(…).getCssValue(“背景色”)
检查计算的样式。截图并评估目标位置像素的颜色。您还可以使用
driver.findElement(…).getCssValue(“背景色”)
检查计算的样式。这仅在组件中固定了样式的情况下才有效,如果您使用的是css类,则将无法工作,因为css位于DOMDower外部。我已经使用它如下,它是工作。WebElement linkToCheck=driver.findElement(By.xpath(“html/body/div[1]/table/tbody/tr[3]/td”);字符串Colorcode=linkToCheck.getCssValue(“背景色”);System.out.println(色码);if(linkToCheck.getCssValue(“background color”).contains(“rgba(96,192,96,1)”){System.out.println(“我能看到颜色”);driver.findelelement(By.xpath(“html/body/div[1]/table/tbody/tr[3]/td/a”)。click();}否则{System.out.println(“我看不到颜色-现有代码”);}如何使用动态xpath来检查循环中的每个xpath?1)您需要找到一个指向5个链接的xpath。这个xpath可能会使用5个链接的本地化中的共同点。2) 你需要使用
driver.findElements(xpathToAllFiveElements)
返回一个webElement列表,3)在循环中,你可以一个接一个地访问链接,这要感谢你拥有的webElement列表。这只有在组件中固定了样式的情况下才能工作,如果你使用的是css类,则无法工作,因为css位于DOM的外部,谢谢。我已经使用它如下,它是工作。WebElement linkToCheck=driver.findElement(By.xpath(“html/body/div[1]/table/tbody/tr[3]/td”);字符串Colorcode=linkToCheck.getCssValue(“背景色”);System.out.println(色码);if(linkToCheck.getCssValue(“background color”).contains(“rgba(96,192,96,1)”){System.out.println(“我能看到颜色”);driver.findelelement(By.xpath(“html/body/div[1]/table/tbody/tr[3]/td/a”)。click();}否则{System.out.println(“我看不到颜色-现有代码”);}如何使用动态xpath来检查循环中的每个xpath?1)您需要找到一个指向5个链接的xpath。这个xpath可能会使用5个链接的本地化中的共同点。2) 您需要使用
driver.findElements(xpathToAllFiveElements)
返回webElement列表,3)在循环中,您可以一个接一个地访问链接,这要感谢您拥有的webElement列表。