2010-12-03 11 views
3
sel.add_script(sel.get_location(), "jquery.js") 

#here I get u'fd6c42bcc770ca9decc4f358df3688290a4257ad'` 
     idOfResultWithSomeImage=sel.get_eval("window.jQuery('#result').find('img').filter('[alt=SeleImage]').eq(0).parents('form:first').find('a').eq(1).attr('id')")` 

    #here I get u"window.jQuery('#fd6c42bcc770ca9decc4f358df3688290a4257ad').parent().find('button')" 
     pathOfButton="window.jQuery('#" + idOfResultWithSomeImage+ "').parent().find('button')" 

     #here I get false :/ 
     isButtonPreset = sel.is_element_present(pathOfButton) 
     #so here I get error. Element not present. 
     sel.click(pathOfButton) 

방화 광구의 콘솔에서 이것을 확인하면이 버튼을 찾습니다.Jquery가 셀레늄에서 요소를 찾지 못했습니다.

나는

# -*- coding: utf-8 -*- 

을 사용하고 있는데 나는 WingIde 코딩하고 있습니다.

이유가 궁금하십니까?

편집

#from here I get 08f0ddbfa71df43bee87d9becdec5ced4ead3419 
idOfResultWithRyanairFlight=sel.get_eval("window.jQuery('#result').find('img').filter('[alt=Ryanair]').eq(0).parents('form:first').find('a').eq(1).attr('id')") 

내가 디버그 모드에서 확인 :

#it returns true 
sel.is_element_present("css=#08f0ddbfa71df43bee87d9becdec5ced4ead3419") 
#it returns false 
sel.is_element_present("window.jQuery('#08f0ddbfa71df43bee87d9becdec5ced4ead3419')") 
#it return false 
sel.is_element_present("window.jQuery(#08f0ddbfa71df43bee87d9becdec5ced4ead3419)") 

나는 불을 지르고 콘솔과 제 1 및 제 2 작업에서는이 쿼리를 넣어.

편집

흥미로운 무엇

, 나는 C#에서 같은 스크립트를 작성하고 저도 같은 문제가 있습니다.

var dOfA = selenium.GetEval("window.jQuery('#result').find('img').filter('[alt=SomeIMG]').eq(0).parents('form:first').find('a').eq(1).attr('id')"); 


      var a=selenium.IsElementPresent("window.jQuery('#" + dOfA + "').parent().find('button')"); 
      var b = selenium.IsElementPresent("$('#" + dOfA + "')"); 
      var c = selenium.IsElementPresent("jQuery('#" + dOfA + "')"); 
      var d = selenium.IsElementPresent("css=#" + dOfA); 
      var e = selenium.GetEval("window.jQuery('#" + dOfA + "')"); 

d 만 true입니다.

+0

나는 이것도 intereset 오전, 당신은 해결책을 찾았나요? – Alp

+0

driver.find_element_by_css_selector ("# someid") – malletjo

답변

0

셀레늄에서 CSS/jQuery 스타일 선택기를 사용하려면 CSS 선택기를 사용해야합니다. 즉, 다음과 같은 것이 필요합니다.

pathOfButton = "css=#" + idOfResultWithSomeImage + " ~ button" 
if (!sel.is_element_present(pathOfButton)) 
    pathOfButton = "css=button ~ #" + idOfResultWithSomeImage 

sel.click(pathOfButton) 

이렇게하는 것이 더 좋은 방법 일 수 있습니다. 또한, 나는 파이썬으로 프로그래밍하지 않았기 때문에 구문이 꺼져있을 수도있다.

자세한 로케이터 정보는 this Selenium documentation page을 참조하십시오.

+0

을 사용하십시오. 불행히도 작동하지 않습니다.이 요소를 찾을 수 없습니다. – user278618

관련 문제