2017-12-04 17 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 [1] [ 'でブロックQUERY_NAME' @クラス=] // /スパン/ EM [ 'PT5 PB5 ML15 MR15 新しい-のborder-bottom' =クラス@]"

+0

HTMLが表示されていないと、なぜこれが失敗したのかわからない。 1つの問題は、XPathがclass属性と完全に一致するものを検索するが、追加、削除、並べ替えられたクラスを持つクラス属性値(単なる文字列)になる可能性のあるクラスリストが変更されたことが考えられます。 '.new-border-bottom'がここで関連するクラスであれば、おそらく' div [contains(@class、 'new-border-bottom')] 'のようなものを使うべきでしょう。 –

答えて

0

相対Xパスが間違っています。

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

xパスに//を2回含めることはできません。 //は、あなたが始める要素からの相対を意味します。

Xpathで名前を確認してください。

関連する問題