2016-04-27 9 views
0

こちらは新しく、RubySeleniumに新しいです。私は次のコードを持つウェブページのリンクをクリックしようとしています:ルビーを使用してリンクテキスト/部分リンクテキストを使用してリンクをクリックできません

<a> target="mainFrame" href="dynamic_Utility_Index.htm">Dynamic Utilities</a> 

したがって、この動的ユーティリティをクリックします。私がこれまでに書かれているスクリプトは次のとおりです。私もLINK_TEXTの代わりに、リンク、partial_link_textを使用しますが、私はRubySelenium Web driverを使用しています、次のエラー

(Unable to locate element: {"method":"link text","selector":"dynamic"}) (Selenium::WebDriver::Error::TimeOutError)

を得続けるいる

require 'selenium-webdriver' 
    require 'win32ole' 

    driver = Selenium::WebDriver.for:firefox 
    driver.manage().window().maximize(); 

    driver.navigate.to 'xyz.com' 

    wait = Selenium::WebDriver::Wait.new(:timeout =>10) # seconds 

    #Click on Dynamic Utilities 
    wait.until{driver.find_element(:link_text,'dynamic_Utility_Index.htm').click} 
    puts "Clicked" 

+1

あなたがチェックすることができますか?ありがとう。 – alecxe

+0

これは、iframe内にloctaedされていません。 –

答えて

0

link textdynamic_Utility_Index.htm)と思われるアイテムは、実際には値がhrefであると考えられます。実際のリンクテキストは"Dynamic Utilities"です。また、あなたはリンクテキストでxpathロケータ//a[@href="dynamic_Utility_Index.htm"]代わりの検索を使用することができます。

wait.until{driver.find_element(:xpath,'//a[@href="dynamic_Utility_Index.htm"]').click} 
+0

このwait.until {driver.find_element(:xpath、 '/ html/body/table/tbody/tr [11]/td [2]/a [@ href = " {@ href = "dynamic_Utility_Index.htm"] ')。}}}をクリックしてください。両方とも試みました。要素を見つけることができません –

+0

'/ html/body/table/tbody/tr [11]/.....のように絶対' XPaths'を使わないでください。 – Andersson

+0

'wait.until {driver.find_element(:link_text、動的なユーティリティ ")。クリック}'は動作しますか? – Andersson

0

がやったあなたがしてみてください:

wait.until{driver.find_element(:link_text,'DYNAMIC UTLITIES').click} 

?時には、大文字でテキストリンクを使用する必要がありました。

別のオプションは、次のようになります。

driver.find_element(:xpath, "//a[contains(@target, 'mainFrame')]").click

希望はあなたのために働く:このリンクはインラインフレームの内側に配置されている場合D

+0

よう –

+0

@JimitShahに同じerror..btwのおかげを取得し、両方試してみました。この Dynamic Utilities

+0

私は自分のコードで両方を試しました。 どちらの場合も0が出力されます。 –

関連する問題