2014-12-30 2 views
0

그래서 이것은 HTML의 모습입니다 :파이썬은

<button type="submit" name="page" value="2" class="_btn _btng">Next →</button> 

<button type="submit" name="page" value="1" class="_btn">← Back</button> 

그리고 이것은 내가 시도하고있는 무슨이다 :

driver.find_element_by_xpath("//*[contains(text(), 'Next')]").click() 

이유가 무엇이든, 실제로이 버튼을 클릭하는 것이 아니라 버튼이 위치한 곳으로 이동하고있을뿐입니다. 어딘가에 숨겨진 또 다른 버튼이있어 코드가 "클릭하는"것을 눈으로 보지 못하는 것 같습니다. 확실하지 않으므로 제 질문은 실제로 내려갈 것입니다. 값, 유형 및 클래스를 기반으로 버튼을 검색 할 수있는 방법이 있습니까?

답변

4

는 총 검색을 기반으로 text주세요. 그건 내 우리가 직접 html 계층 구조에서 부모를 가리키는 .*

driver.find_element_by_xpath("//*[.='Next →')]").click() 

당신이 정확히 무엇을하는지 설명 할 수있는 특정 tag

+0

그 일을 시도했지만 → 문자가 이해되지 않는 것 같습니다 ... :( –

+0

그 경우에는 // 버튼으로갑니다. ' – Saifur

+0

시도해 보겠습니다. –

0

해결책은 될 수있다 : 여기 셀레늄 조치 체인에

buttons = self.driver.find_elements_by_xpath("//title[contains(text(),'Next')]") 
actions = ActionChains(self.driver) 
time.sleep(2) 
actions.click(button) 
actions.perform() 

문서가 : http://selenium-python.readthedocs.org/en/latest/api.html#module-selenium.webdriver.common.action_chains

+0

에 의존하지 않고 검색을 수행 할 수 있습니다 좋아? –

+0

"다음"텍스트가있는 단추를 찾고, 동작 체인을 만들고 단추를 누릅니다. 아약스에 의해로드 된 코드가있는 경우를 대비하여 잠을 사용하여 지연이 있습니다. – aberna