我正在自动化网页。我必须检查鼠标悬停功能是否正常。 当鼠标指向特定项目时,我必须打印背景颜色。我已编写代码,但它没有抛出正确的输出。
public class Selenium_Demos extends Environment_Setup {
@Test
public void test() throws Exception {
Rapidaction();
}
private void Rapidaction() throws Exception
{
driver2.get("http://www.rapidvaluesolutions.com/");
Actions builder = new Actions(driver2);
//点击“PRODUCT”链接
WebElement td_Home = driver2.findElement(By.xpath("//html/body/section[1]/header/nav/ul/li[1]/a"));
String bgColor = td_Home.getCssValue("background-color");
System.out.println("Before hover: " + bgColor);
builder.moveToElement(td_Home).build().perform();
bgColor = td_Home.getCssValue("background-color");
System.out.println("After hover: " + bgColor);
driver2.quit();
}
}
当我们将鼠标指向链接“产品”时,应该打印链接的颜色 - 蓝色。
答案 0 :(得分:0)
从评论转到帖子,因为我想发布一些代码。
请你改变下面的行
WebElement td_Home = driver2.findElement(By.xpath("//html/body/section[1]/header/nav/ul/li[1]/a"));
要
List<WebElement> td_Home = driver2.findElements(By.xpath("//html/body/section[1]/header/nav/ul/li[1]/a"));
然后检查td_Home的长度,即打印“td_Home.size()
”
如果长度大于1,则必须调试是否将大小设置为1,然后检查元素的某些属性以确保选择了正确的元素。
请试一试。
<强>更新强>
现在请做
String bgColor = td_Home.get(0).getCssValue(“background-color”);
答案 1 :(得分:0)
我为您创建了一个简单的示例:将此html复制到某个位置并保存为.html
<html>
<body>
<div id="mydiv" style="width:200px;background:white" onmouseover="this.style.background='gray';" onmouseout="this.style.background='white';">
on mouse over color change.
</div>
</body>
</html>
**web driver code:**
driver.get("file:///C:/Users/vkiran/Desktop/color1.html");
WebElement element = driver.findElement(By.xpath("//*[@id='mydiv']"));
Actions builder = new Actions(driver);
Action mouseOver = builder.moveToElement(element).build();
String bgColor = element.getCssValue("background-color");
System.out.println("Before hover: " + bgColor);
mouseOver.perform();
bgColor = element.getCssValue("background-color");
System.out.println("After hover: " + bgColor);
答案 2 :(得分:0)
识别webelement,然后借助getAttribute()方法找到颜色
System.out.println("Hexadecimal color : "+driver.findElement(By.xpath("write the proper xpath")).getAttribute("bgcolor"));
这将为颜色提供十六进制表示法
答案 3 :(得分:0)
Actions actions = new Actions(driver);
WebElement element = driver.findElement(mycopieslink_locator);
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].setAttribute('style', 'background: yellow; border: 3px solid red;');", element);
actions.moveToElement(element);
actions.click().build().perform();