2014-07-25 5 views
1

나는 셀레늄으로 자바 스크립트 링크를 클릭하여 활성화하려고합니다. 5 성급 등급 위젯입니다. 별표 5 개가 정확한 항목입니다. 다른 항목, IE 4 별 완전히 표시되지 않습니다.Selenium Python 정렬되지 않은 목록의 자바 스크립트에 대한 링크를 클릭하십시오.

<div id="percentages_and_ratings"> 
<div id="percentages"> 
<div id="rating"> 
<ul id="personality-rating" class="star-rating profile_rating " onmouseout="Votes.publicStarOut(this)" onmouseover="Votes.publicStarOver(this)"> 
<li id="current-personality-3198779465475184989-1" class="current-rating" style="width: 0%;"></li> 
<li>... 
<li>... 
<li>... 
<li>... 
<li> 
<a class="five-stars" title="" href="javascript:processVoteNote('vote', 'personality', 5, '222222222222222', false, '', '', Profile.profileHeadingVote);">5</a> 
</li> 
<li class="cant-tell" style="display: none;"> 
<li class="click-away"> 

셀레늄 단위 테스트 출력은

같은
driver.find_element_by_xpath("(//a[contains(text(),'5')])[2]").click() 

을 보이지만, 그 작동하지 않습니다. 방화 광명과 함께 xpath, CSS, HTML을 선택하는 것도 작동하지 않습니다. 어떤 아이디어? 나는 .. 그것은 내가 그것을 해결 결국 방법 2.7 여기

는 셀레늄 웹 드라이버와 파이썬을 사용하고

:-) 물어 시간 그래서 지금 며칠 밤을 위해 그것을 봤는데

id = self.getID(driver) 
script = "$(processVoteNote('vote', 'personality', 5, '"+id+"', false, '', '', Profile.profileHeadingVote));" 
driver.execute_script(script) 
+0

그것이 작동하지 않는다는 것이 무슨 의미입니까? 오류가 있습니까? – falsetru

답변

1

게시 한 샘플 HTML을 기준으로 browser.find_element_by_class_name('five-stars').click()이 해당 링크를 성공적으로 선택하고 클릭해야합니다. 페이지에 해당 클래스 이름을 가진 페이지에 둘 이상의 요소가있는 경우 browser.find_elements_by_class_name('five-stars')을 사용하여 해당 목록을 반복하여 관련 링크를 식별 한 다음 해당 링크를 클릭 할 수 있습니다.

XPATH 검색을 사용하려는 경우 다른 패턴을 시도하려면 xPath Tester을 사용하는 것이 좋습니다.

+0

그게 효과가 있었고, 그렇지 않았습니다. 크롤러를 작성할 때 다음 오류 (요소가 표시되지 않음)로 이동하도록 허용 했으므로 해결 방법을 찾았습니다. – StarWind0

관련 문제