【问题标题】:How to check if a label is bold with Selenium WebDriver using Java?如何使用 Java 使用 Selenium WebDriver 检查标签是否为粗体?
【发布时间】:2016-11-24 23:43:13
【问题描述】:
请在下面找到示例 HTML 代码:
<div class="form-element email-address" id="gmail-address-form-element">
<label id="gmail-address-label">
<strong>
Choose your username
</strong>
<input type="text" maxlength="30" autocomplete="off"
name="GmailAddress" id="GmailAddress" value=""
spellcheck="false">
<span class="atgmail">@gmail.com</span>
</label>
我需要使用 Selenium WebDriver 验证“选择您的用户名”标签是否为粗体。
如果使用的语言是java,请欣赏。
【问题讨论】:
标签:
java
selenium
selenium-webdriver
【解决方案1】:
您可以使用getComputedStyle 来获取元素的样式。
使用font-Weight检查是否为粗体
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement element = driver.findElement(By.cssSelector("#gmail-address-label > strong"));
String fontWeight = (String) js.
executeScript(
"return getComputedStyle(arguments[0]).getPropertyValue('font-Weight');",
element);
if (fontWeight.trim().equals("bold")) {
System.out.println("Is Bold");
} else {
System.out.println("Not Bold - " + fontWeight);
}
【解决方案2】:
通过简单的方法,我们可以得到 font-weight 的 CssValue 并检查它是 'bold' 还是大于等于 700 或者是 'bolder' 。因为通过所有这些方式可以给文本加粗样式
在java中使用以下代码
String fontWeight = driver.findElement(By.className("classname"))
.getCssValue("font-weight");
boolean isBold = "bold".equals(fontWeight) || "bolder".equals(fontWeight) || Integer.parseInt(fontWeight) >= 700;
希望它会有所帮助。