2014-07-23 4 views
1

파이어 폭스에서 파이어 버그를 사용하여 ID가 ​​할당되지 않은 링크의 xpath를 얻었습니다. 링크는 이미지가있는 실제 자바 스크립트 링크입니다. 이 링크를 클릭하고 싶지만 작동하지 않습니다.셀레늄 파이썬에서 xpath 사용

실제 xpath는 '/html/body/div [2]/div/div/div [3]/div/div/table/tbody/tr [1]/TBODY/TR [1]/TD/DIV [1]/DIV/표/THEAD/TR [2]/[1]/A/IMG '

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
driver = webdriver.Firefox() 

URL = 'http://example.com' 

driver.set_window_size(1024, 768) 
driver.get(url) 

link = driver.find_element_by_xpath(//*[@id="//html/body/div[2]/div/div/div[3]/div/div/‌​table/tbody/tr[1]/td[2]/form/table/tbody/tr[1]/td/div[1]/div/table/thead/tr[2]/th‌​[1]/a/img"]) 
for link in links: 
link.click() 

난 다음 오류 얻을 : 제 is either invalid or does not result in a WebElement. The following error occurred:\nInvalidSelectorError: Unable to locate an element with the xpath expression //*[@id=/html/body/div[2]/div/div/div[3]/div/div/table/tbody/tr[1]/td[2]/form/table/tbody/tr[1]/td/div[1]/div/table/thead/tr[2]/th[1]/a/img because of the following error:\n[Exception... "The expression is not a legal expression." code: "12" nsresult: "0x805b0033 (SyntaxError)" location: "<unknown>"]' ; Stacktrace:

을 그것의 부모와 속성에 대신 요소에 절대 경로를 갖는
<a onclick="if(typeof functionx == 'function'){functionx(document.getElement…,'liststuff','');}return false" href="#"> 

    <img style="border: 0px;" onmouseover="this.src='/add-hover.gif';" onmouseout="this.src='/add.gif';" alt="Add" src="/icon-add.gif"></img> 

</a> 
+0

링크가 포함 된 관련 html 코드를 표시 하시겠습니까, 아니면 웹 사이트에 대한 링크를 제공 할 수 있습니까? 감사. – alecxe

+0

@alecxe 죄송합니다. 회사의 내부 서버에 있기 때문에 URL을 제공 할 수 없습니다. – user2242044

답변

3

는 의지 :

link = driver.find_element_by_xpath('//a[@onclick and @href = "#" and img/@alt = "Add"]') 
+0

이 코드는 이제 문제를 코드화하지만 링크를 수동으로 클릭하면 열리는 페이지를 열지 않습니다. – user2242044

+0

@ user2242044 xpath 표현식을 업데이트했습니다. 확인하십시오. – alecxe

+0

여전히 동일한 결과입니다. 오류는 없지만 열린 링크는 없습니다. PyCharm은 다음과 같은 결과를 얻습니다.'종료 코드 0으로 프로세스가 완료되었습니다' – user2242044