2017-11-29 3 views
0

클릭하면 사용자가 다른 페이지로 리디렉션되는 이미지입니다.이미지를 클릭하면 링크가 표시됩니다.

<div class="lis_el   " id="cel_lisimg_18755" onclick="lis_mostrarficha(0);"> 

    <div class="lis_elc "> 
     <div class="lis_eloverflow"> 
      <div class="lis_elc_img"> 
       <div class="lis_elc_imgc"><img class="lis_elc_img_img" id="lisimg_18755" src="https://sgfm.elcorteingles.es/SGFM/dctm/MEDIA03/201705/29/0280282401564764342_1_.jpg"> 
       </div> 
      </div> 
     </div> 
     <div class="lis_info "> 

          <div class="clear"></div> 

      <div class="lis_info_precio"> 


          5<span class="lis_info_preciop">,99€</span> 

      </div> 
      <h2>Camiseta flame</h2> 
      <div class="lis_mascol displaynone" id="lis_mascol18755" style="display: block;">+ Colores</div> 
     </div> 
    </div> 
</div> 

나는이 링크를 파이썬에서 Selenium을 사용하여 얻으려고 노력하고 있지만 어디에서 얻을 수 있는지 알지 못한다.

onclick="lis_mostrarficha(0); 

나는 웹 이렇게 개발이 걸릴 것이라고 나는, 내가 클릭하지 않고 링크를 얻을 수있는 방법 확실하지 않다에 많은 경험이 없어 : 나는이 기능은 리디렉션을 수행한다고 가정하는, 그러나이 나타났습니다 너무 오래.

감사합니다,

+0

, 브라우저의 개발자 도구 콘솔의 기능을 실행 해보십시오) ')' – Dalvenjia

+0

@Dalvenjia "Uncaught ReferenceError : los_mostrarficha가 정의되지 않았습니다."이것은 내가 얻은 것입니다. – cuoka

+0

'onclick' 이벤트에 대한 중단 점을 설정하고 어떤 함수가 리다이렉트 URL을 리턴하는지 알아 내려고, 또한'unload' 이벤트 중단 점이 도움이 될 수 있습니다. 리디렉션은 'onclick'과'unload' 이벤트 사이에 표시되어야합니다. 공개 페이지에서 링크를 붙여 넣으면 더 멀리 도울 수 있습니다. – Dalvenjia

답변

1

당신은 HTML 이미지에 링크 된 URL을 포함하지 않기 때문에이 경우에는 클릭 이벤트를 수행해야합니다 - 그것은 스크립트 호출합니다. 무엇 할 수있는 셀레늄을 사용하여 onclick 이벤트가 포함 된 요소를 클릭합니다. `링크 = driver.execute_script ('리턴 los_mostrarficha (0 : 그것은 당신이 다음과 같은 셀레늄을 실행 진행할 수 필요한 URL을 반환하는 경우

from selenium.webdriver.chrome.options import Options 
from selenium import webdriver 

options = Options() 
options.add_argument('--disable-infobars') 
driver = webdriver.Chrome(chrome_options=options) 

div = find_element_by_id('cel_lisimg_18755') 
div.click() 

# Then wait for the page to load 

# Get the URL 
url = driver.current_url 
print(url) # Assumes v3 python