5

我正在尝试自动化手动脚本(在 java 中使用 selenium)来检查网页上某个字段(标签:代表必填字段)的粗体外观。什么是可能的 selenium java 函数来验证某些元素的粗体外观(在类中没有关于外观的信息)

4

4 回答 4

6

使用 WebDriver(在 Java 中),您可以使用getCssValue()

import static org.junit.Assert.assertTrue;
(...)

// assuming elem is a healthy WebElement instance, your found element
String fontWeight = elem.getCssValue("font-weight");
assertTrue(fontWeight.equals("bold") || fontWeight.equals("700"));

(因为700与 相同bold


使用 Selenium RC,请参阅此技术,只需使用font-weight(或fontWeight取决于使用情况)。

于 2012-04-13T14:55:14.063 回答
3

您可以使用该方法检查字体粗细style()(假设您实际上使用的是 Selenium-Webdriver)。

所以说你有像这样的HTML:

<body>
  <div id='1' style='font-weight:normal'>
    <div id='2' style='font-weight:bold'>Field Label</div>
    <div id='3'>Field</div>
  </div>
</body>

您可以执行以下操作来检查字段标签 div 的字体粗细(以下是 Ruby 中的,尽管在其他语言中应该可能类似)。

el = driver.find_element(:id, "2")
if el.style('font-weight') >= 700
  puts 'text is bold'
else
  puts 'text is not bold'
end 
于 2012-04-11T14:37:17.097 回答
1

我真的很喜欢 Justin Ko 建议使用该style("font-weight")方法,但是在 python 绑定中,等效项似乎是value_of_css_property("font-weight")

>>> element = self.wd.find_element_by_id("some-id")
>>> element.value_of_css_property('font-weight')
u'700'
>>> element.style('font-weight')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'WebElement' object has no attribute 'style'

http://code.google.com/p/selenium/source/browse/py/selenium/webdriver/remote/webelement.py#132

很抱歉,这是一个单独的答案而不是对该答案的评论,但我显然有太低的业力门槛来评论那里

于 2013-01-16T15:26:36.457 回答
0

我看到你提到的元素有一个复合类,为什么不尝试用label_required类定位所有元素,python示例

els = driver.find_elements_by_css_selector(div[class*=label_required])
self.assertTrue(len(els) == [known value of required fields on page])

java(注意:我不写java代码,所以语法可能有误):

import static org.junit.Assert.assertTrue;
WebDriver driver = new FirefoxDriver();
WebElement els=driver.findElements(By.cssSelector("div[class*=label_required]"));
assertTrue(els.length == [known value of required fields on page]);
于 2012-04-12T02:28:58.787 回答