2017-12-04 3 views
-1
company_name = 'google' 
browser.get('https://m.tianyancha.com/search?key=&checkFrom=searchBox') 
ele = browser.find_element_by_xpath("//input[@id='live-search']") 
ele.clear() 
ele.send_keys(company_name, Keys.ENTER) 
name = browser.find_element_by_xpath(
      "//div[@class='new-border-bottom pt5 pb5 ml15 mr15'][1]//a[@class='query_name in-block']/span/em") 

if name.text: 
    if name.text == company_name: 
     check = '1' 
    else: 
     check = '0' 
else: 
    check = '0' 

오류이다파이썬 + 소자를 찾을 수 없습니다 셀레늄의 XPath

는 NoSuchElementException : 메시지 : 요소를 찾을 수 없습니다 : 이러한 요소 { "방법": "XPath를", "선택기" "// DIV [의 @ 클래스 = '새로운 보더 바닥 PT5 PB5 ml15 mr15'] [1] [클래스 @ = 'QUERY_NAME의 블록']/폭/EM //"}

+0

HTML을 보지 않아도 이것이 실패한 이유를 알 수있는 방법이 없습니다. 한 가지 가능한 문제는 XPath가 class 속성과 정확히 일치하는 항목을 검색하지만 클래스 목록이 수정되어 클래스 속성 값 (단순한 문자열)이 추가, 제거 또는 재정렬 된 클래스가 될 수 있습니다. '.new-border-bottom'이 여기 관련 클래스라면'div [contains (@class, 'new-border-bottom')]'와 같은 것을 사용해야합니다. –

답변

0

상대 Xpath가 잘못되었습니다.

name = browser.find_element_by_xpath(
      "//div[@class='new-border-bottom pt5 pb5 ml15 mr15'][1]//a[@class='query_name in-block']/span/em" 

xpath에는 //을 두 번 사용할 수 없습니다. //은 시작하는 요소의 상대 경로를 의미합니다.

Xpath에서 이름을 확인하십시오.

관련 문제