2017-01-11 9 views
1

私はPython 2.7.12Selenium 3.0.2を使用しています。私は、タグ<section>内部タグを探していました<main>タグにはセレンのPythonを使用していますか?

が、ここでのコードは次のとおりです。

selenium.common.exceptions.NoSuchElementException:メッセージ:

driver = webdriver.Chrome() 
driver.get("https://www.semanticscholar.org/") 
input_t = driver.find_element_by_xpath('//input[@type="search"]') 
input_t.send_keys(keyword) 
input_t.send_keys(Keys.ENTER) 
target = driver.find_element_by_xpath('//main') 

はこれを実行すると、私は例外が発生しましたそのような要素はありません:要素を見つけることができません:{"method": "xpath"、 "selector": "// main"}

実際には、ページ:

<main class="main-column results" data-reactid=".dyth4mk2kg.0.1.0.1"><div class="controls" data-reactid=".dyth4mk2kg.0.1.0.1.1"> 
... 
</main> 
+0

あなたが他のページに移動していますか? URLから開いたページには '

'タグがないためです。 – Guy

+0

再編集しました。ありがとう、ガイ。 – Victorwhz

答えて

0

タイミングの問題です。あなたは以下のように、検索ボタンをクリックした後mainタグが読み込まれて表示されるまで待つようにExplicit Waitsを使用してみてください: -

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

driver = webdriver.Chrome() 
driver.get("https://www.semanticscholar.org/") 

#Now enter text to search 
driver.find_element_by_name("q").send_keys(keyword) 

#Now click on search button 
driver.find_element_by_css_selector(".search-bar .button").click() 

#Now wait until main tag visible 
target = WebDriverWait(driver, 30).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "main.main-column.results"))) 
関連する問題