이렇게하면 가능하지 않습니까? 맞춤 선택기를 허용하는 기능을 확장하는 코드를 추가했습니다.Watir-Webdriver의 사용자 지정 특성에서 라디오 단추를 선택하려고 시도 중
module Watir
class ElementLocator
alias :old_normalize_selector :normalize_selector
def normalize_selector(how, what)
case how
when :data_sku
[how, what]
else
old_normalize_selector(how, what)
end
end
end
end
그리고 임의 코드 배열에서 코드를 선택하려고합니다. 주석을 달지 않은 가운데 두 줄이 있어도 여전히 오류가 발생합니다.
$monthlydata = ["GC311Z-02","GC307Z-02","GC308Z-02","GC309Z-02","GC310Z-02"].sample
#Watir::Wait.until { @b.radio(:data_sku, $monthlydata) }
#@b.radio(:xpath, "//input[@data_sku='$monthlydata']").exists?
@b.radio(:xpath, "//input[@data_sku='$monthlydata']").set **(line causing the error)**
오류는 UnknownObjectException : 요소를 찾을 수 없습니다. 오류가 발생하는 행이 마지막에 표시됩니다.
UPDATE
내 업데이트 된 코드 점점 시간 초과 오류 :
if @b.url == "http://www.website.com/cart/plans?ProductId=product"
$monthlydata = ["GC311Z-02","GC307Z-02","GC308Z-02","GC309Z-02","GC310A-02"].sample
assert @b.radio(:data_sku, $monthlydata).when_present.set
end
$monthlymin = ["GC504Z","GC505Z","GC506Z","GC507Z","GC508Z"].sample
assert @b.radio(:data_sku, $monthlymin).when_present.set
$monthlytxt = ["GC313Z-02","GC314Z-02","GC315Z-02","GC316Z-02","GC320Z-02"].sample
assert @b.radio(:data_sku, $monthlytxt).when_present.set
스택 트레이스 :
Error: test_goproject(TestShoppingCart)
Watir::Wait::TimeoutError: timed out after 30 seconds, waiting for {:data_sku=
>"GC309Z-02", :tag_name=>"input", :type=>"radio"} to become present
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.7/lib/watir-webdriver/wa
it.rb:33:in `until'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/watir-webdriver-0.6.7/lib/watir-webdriver/wa
it.rb:106:in `method_missing'
C:/Users/User.Name/Downloads/shoppingcart2.rb:95:in `test_goproject'
92:
93: if @b.url == "http://www.website.com/cart/plans?ProductId=product"
94: $monthlydata = ["GC311Z-02","GC307Z-02","GC308Z-
02","GC309Z-02","GC310Z-02"].sZmple
=> 95: assert @b.radio(:data_sku, $monthlydZtZ).when_pr
esent.set
96: end
97:
98: $monthlymin = ["GC504Z","GC505Z","GC506Z","GC507Z","GC50
8Z"].sample
감사합니다, 나는 $ monthlydata에서 내 배열을 체크 아웃에서 그것을 알아 냈다. 내가 $ monthlydata 값을 얻고있는 영역은 내가 잡는 다양한 웹 페이지 전부가 아닙니다. –
라디오 요소를 찾으려는 시도에서 시간 초과가 발생하기 때문에 위의 스택 추적을 추가하려고합니다. –
문제가 해결되었습니다. 신경 쓰지 마. –