2014-03-27 87 views
0

使用Selenium WebDriver,我試圖點擊Manual Testing選項Testing菜單http://guru99.com/Manual Testing選項出現在Testing上懸停鼠標後。爲了實現上述,我並以下 -無法點擊列表中的元素從下拉列表

testing = $driver.find_element(:xpath, "//li[@class='item118 parent']") 
mt = $driver.find_element(:xpath, "//li[@class='item119']/a") 

$driver.action.move_to(testing).move_to(mt).perform 
mt.click 

但是,有時誤差線路#3上面的代碼 - 在上面的代碼

Selenium::WebDriver::Error::MoveTargetOutOfBoundsError: Offset within element ca 
nnot be scrolled into view: (85, 21): http://guru99.com/software-testing.html 

有時誤差線#4 -

Selenium::WebDriver::Error::ElementNotVisibleError: Element is not currently vis 
ible and so may not be interacted with 

請不要執行javascript來幫我解決此問題

這裏是HTML代碼 -

<li class="item118 parent"> 
    <a class="item" href="/software-testing.html"> Testing </a> 
    <span class="dropdown-spacer"></span> 
<div class="dropdown columns-1 " style="width:180px;"> 
    <div class="column col1" style="width:180px;"> 
    <ul class="l2"> 
     <li class="item119"> 
     <a class="item" href="/software-testing.html"> Manual Testing </a> 
     </li> 
    . 
    . 
    . 
+2

請發表你的HTML代碼片斷,如果可能的 – Sighil

+0

更新與HTML代碼段的問題。 – TDHM

回答

0

您可以partial_link_text嘗試:

testing = $driver.find_element(:partial_link_text, "Testing") 
$driver.action.move_to(testing).perform 
mt = $driver.find_element(:partial_link_text, "Manual Testing") 
mt.click 
+0

這不是問題 - 「無法定位元素」找到我提到的元素,但無法從下拉列表中選擇列表元素。 – TDHM

+0

我不是說你正在搜索的元素不存在,但是它真的需要什麼?....例如,考慮在方形框頂部的「紅色按鈕」,要求按紅色按鈕'和**沒有在方盒子的頂部表面...在你的情況下,李如方盒子和achor標籤就像紅色的按鈕。 – Amith

+0

啊,明白了。我試過了,但是它給'mt = $ driver.find_element(:partial_link_text,「手動測試」)提供錯誤'無法找到元素''我不明白,爲什麼會發生這種情況是正確的? – TDHM