2017-12-18 12 views
0

내 프로젝트를 진행할 수 있도록 selenium webdriver가이 링크를 클릭하고 싶습니다. 여기 내 코드가있다. 오류는 없지만 링크를 클릭하지는 않습니다.Selenium이 (가) 아니요, 이름, ID 또는 클래스를 클릭하지 않습니다.

x = driver.find_element_by_xpath('/html/body/table[2]/tbody/tr[2]/td/span/ 
a[7]') 
x.click() 

다음은 HTML 나는 7 링크를 클릭합니다

<tr> 
    <td width="100%"> 
    <span style="white-space: nowrap"> 
     <a href="#"> 
     <img src="https://staffmate.com/imagessm/OEA_sm_lt.gif" border="0" width="125" height="36"> 
     </a> 
     <a href="#"> 
     <img src="https://staffmate.com/imagessm/OPOS_sm_lt.gif" border="0" width="125" height="36"> 
     </a> 
     <a href="#"> 
     <img src="https://staffmate.com/imagessm/OCTR_sm_lt.gif" border="0" width="125" height="36"> 
     </a> 
     <a href="#"> 
     <img src="https://staffmate.com/imagessm/OCL_sm_lt.gif" border="0" width="125" height="36"> 
     </a> 
     <a href="#"> 
     <img src="https://staffmate.com/imagessm/OVEN_sm_lt.gif" border="0" width="125" height="36"> 
     </a> 
     <a href="#"> 
     <img src="https://staffmate.com/imagessm/OEV_sm_dk.gif" border="0" width="125" height="36"> 
     </a> 
     <a href="eprintreports.php?eSessID=199495633810875522501415473608154261624185901388039708769020171218111124"> 
     <img src="https://staffmate.com/imagessm/PREP_sm_lt.gif" border="0" width="125" height="36"> 
     </a> 
     </span> 
    </td> 
</tr> 

입니다. 크롬 검사 도구에서 바로 xpath를 복사했습니다. 절대 xpath는 신뢰할 수 없다는 것을 알고 있지만 클래스 이름, ID 또는 이름이 없을 때 사용할 수있는 것은 무엇입니까? 도움을 많이 주시면 감사하겠습니다.

+0

당신이 URL을 공유 할 수 다음과 같이 당신은 <img> 태그까지 더 깊게하고 click()를 호출해야합니까? –

+0

URL을 추가했습니다. – Cameron

+0

URL이 설명에없는 것 같습니다. 추가해주세요. – Danny

답변

0

은 다음과 XPath를 시도해보십시오 <a> 태그에

"//a[contains(@src, 'PREP')]" 
+0

도움을 주셔서 감사합니다. 불행히도 이것은 오류를 야기합니다 : 그러한 요소가 없습니다. 이것은 find_element_by_link_text를 시도 할 때와 같은 오류입니다. IDE를 통해 소스를 볼 때 링크를 클릭 할 수 없습니다 : print (driver.page_source). 이것이 문제가 될 수 있습니까? – Cameron

1

클릭을하면 원하는 출력을 가져올 수 없습니다.

driver.find_element_by_xpath("//td/span//a/img[contains(@src,'https://staffmate.com/imagessm/PREP_sm_lt.gif')]").click() 

Note : We could have done away with a shorter value for src attribute as PREP but ideally we should consider the full value of the attribute.

+0

도움 주셔서 감사합니다. 불행히도 이것은 오류를 야기합니다 : 그러한 요소가 없습니다. 이것은 find_element_by_link_text를 시도 할 때와 같은 오류입니다. IDE를 통해 소스를 볼 때 링크를 클릭 할 수 없습니다 : print (driver.page_source). 이것이 문제가 될 수 있습니까? – Cameron

+0

@Cameron 링크로 의미가 무엇을 클릭 할 수 있는지 자세히 설명해 주시겠습니까? 더 많은 outerHTML로 질문을 업데이트하십시오. – DebanjanB