5

Webページの特定のフィールド(ラベル:必須フィールドを表す)の太字の外観をチェックするために、手動スクリプト(Javaでセレンを使用)を自動化しようとしています。特定の要素の太字の外観を検証するために可能なセレン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

メソッドを使用してfont-weightを確認でき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 の font-weight を確認できます (以下は 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

メソッドを使用するというジャスティン・コの提案が本当に好きですが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 に答える