0

ページからリスト項目をクリックしたい。

<ul class="categories" id="cat1">
    <li onClick="chooseCateg(this.form, '315', 1);">Business Opp.</li>
    <li onClick="chooseCateg(this.form, '269', 1);">Cars / Trucks</li>
    <li onClick="chooseCateg(this.form, '301', 1);">Community</li>
    <li onClick="chooseCateg(this.form, '6', 1);">For Sale</li>
    <li onClick="chooseCateg(this.form, '4', 1);">Jobs</li>
    <li onClick="chooseCateg(this.form, '3', 1);">Pets</li>
    <li onClick="chooseCateg(this.form, '2', 1);">Real Estate</li>
    <li onClick="chooseCateg(this.form, '7', 1);">Services</li>
</ul>

上から をクリックしますServices。を使用してFirefoxDriverいます。

どうすればそれを達成できますか?手伝ってください。

4

2 に答える 2

1

おそらくこれで行き詰まっている理由は、XPath 式を知らないからです。

WebDriver で要素を見つける方法は多数あります。

これらは一目瞭然であり、可能な限り使用する必要があります。

  • By.id
  • By.name
  • By.className
  • By.tagName

リンクのように見えるものが実際には実際の<a>要素ではない場合があるため、これらは注意して使用する必要があります。

  • By.linkText
  • By.partialLinkText

これらは、「やり方がわからない」というあなたのほとんどに対応できる、最も強力で高度な戦略です。

  • By.cssSelector
  • By.xpath

通常、CSS セレクターは短くて読みやすいため、CSS セレクターを学習して好みます。また、マッチングも高速です。しかし、これらには欠点があります。最も顕著なのは、テキストを一致させることができないことです。

そこでXPath 式の出番です。賢明に使用すれば、(ほぼ) すべてのものと一致させることができます。それらは最も遅く、簡単に読みにくくなるため、読みにくいです。仕様の興味深い部分を読み、オンラインでチュートリアルを見つけて学習してください。

さて、Services要素を見つける方法は次のとおりです。

WebElement services = driver.findElement(By.xpath("//li[text()='Services']"));

XPath 式自体:

//li[text()='Services']

あなたがそれを見たときにそれを知っていて怖がらないように、これは次のように書くこともできます(そしてしばしばそうです):

//li[.='Services']
于 2013-07-26T08:25:03.953 に答える
0

ここで By.cssSelector は完璧なものになります

driver.findElement(By.cssSelector("#cat1 > li:contains('Services')"))

上記の方法が機能しているかどうか教えてください。

于 2014-04-07T10:23:19.877 に答える