0

Watir で動的オブジェクトのテキストを選択して印刷しようとしています。オブジェクトが生成されるたびに、ランダムな文字列になります。オブジェクトを指す方法がよくわかりません。

<dd itemprop="trait">
text
</dd>

xpath を使用して itemprop 属性を指定しようとしましたが、プログラムを実行するとエラーが発生します。これが xpath では不可能なのか、それとも私のコードが単に間違っているのかはわかりません。

def read_dd_itemprop(trait)
    itemprop_text = @@browser.element(:xpath, "//dd[@itemprop='" + trait + "')]").text
    p itemprop_text
end

スタックトレース:

  The given selector //dd[@itemprop='trait')] is either invalid or does not result in a WebElement. The following error occurred:
  InvalidSelectorError: Unable to locate an element with the xpath expression //dd[@itemprop='trait')] because of the following error:
  [Exception... "The expression is not a legal expression."  code: "12" nsresult: "0x805b0033 (SyntaxError)"  location: "file:///var/folders/bv/4z13hkpn095bytggxzrx4l9h0000gp/T/webdriver-profile20130715-7256-ihkq92/extensions/fxdriver@googlecode.com/components/driver_component.js Line: 5773"] (Selenium::WebDriver::Error::InvalidSelectorError)
  [remote server] file:///var/folders/bv/4z13hkpn095bytggxzrx4l9h0000gp/T/webdriver-profile20130715-7256-ihkq92/extensions/fxdriver@googlecode.com/components/driver_component.js:8379:in `FirefoxDriver.annotateInvalidSelectorError_'
  [remote server] file:///var/folders/bv/4z13hkpn095bytggxzrx4l9h0000gp/T/webdriver-profile20130715-7256-ihkq92/extensions/fxdriver@googlecode.com/components/driver_component.js:8410:in `FirefoxDriver.prototype.findElementInternal_'
  [remote server] file:///var/folders/bv/4z13hkpn095bytggxzrx4l9h0000gp/T/webdriver-profile20130715-7256-ihkq92/extensions/fxdriver@googlecode.com/components/driver_component.js:8414:in `FirefoxDriver.prototype.findElement'
  [remote server] file:///var/folders/bv/4z13hkpn095bytggxzrx4l9h0000gp/T/webdriver-profile20130715-7256-ihkq92/extensions/fxdriver@googlecode.com/components/command_processor.js:10421:in `DelayedCommand.prototype.executeInternal_/h'
  [remote server] file:///var/folders/bv/4z13hkpn095bytggxzrx4l9h0000gp/T/webdriver-profile20130715-7256-ihkq92/extensions/fxdriver@googlecode.com/components/command_processor.js:10426:in `DelayedCommand.prototype.executeInternal_'

私は近いですか?これは合理的なアプローチですか、それとも別の角度から見る必要がありますか?

4

1 に答える 1

1

余分なブラケット ")" があります。

itemprop_text = @@browser.element(:xpath, "//dd[@itemprop='" + object + "']").text

また、xpath が//dd[@itemprop='the value of object']ではなく であると予想していたことにも注意してください//dd[@itemprop='object']。の値が正しいかどうかを確認してくださいobject。たとえば、「trait」にする必要があります。

于 2013-07-15T05:11:04.937 に答える