2016-12-16 9 views
0

私は新しいpython selenium webdriver Studentです。Selenium Webdriverこのような要素はありません:要素を見つけることができません。

次のボタンをクリックしたいですが、機能しません。

私は数日ここで立ち往生しています。

ありがとうございました。

メッセージエラー

browser.find_element_by_xpath("//*[@id='next_button']").click() 

これは、Webページのソースです:

<div id=“banner" class="shell" style="width: 786px; background-color: rgb(0, 0, 255);"> 
<input id=“json" value=“x" type="hidden"> 
    <div class="shell"> 
     <div class="border"> 
      <div id="header" style="height: 135px;"> 
      <div id="navigation"> 
      <div id="main" style="background-color:#FFFFFF;"> 
       <div id="content" class="left" style="padding: 30px 0px 20px; left: 250px;"> 
        <style> 
        <div style="width: 100%;"> 
         <div class="inPn" style="width: 100%;background: #ffffff"> 
          <div class="detail"> 
           <h3>Example Event</h3> 
           <table class="fit"> 
            <colgroup> 
            <tbody> 
             <tr valign="middle"> 
              <td> 
              <td> 
               <div style="float:right; padding:5px;"> 
                <img id=“back_button" src="https://www.site/back.png" style="cursor: pointer;"> 
                <img id=“next_button" src="https://www.site/next.png" style="cursor: pointer;margin-top: 10px;" 
+0

あなたは、これはIFRAME内ではなく、それは目に見えるのですか?ところで、このようなものにはXPathを使わないでください。 '.find_element_by_id(" next_button ")'を使用してください。 XPathは遅く、脆く、ブラウザ間で一貫性のないサポートがあります。 idとCSS Selectorsのどちらかを選ぶと、その要素に含まれるテキストを取得する必要がある場合は、XPathを使用します。 – JeffC

答えて

0

Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='next_button']"} 

これは私のコードですあなたの要素がsrcから画像を取得するために必要とするので、あなたはターゲット要素まで、いくつかの時間を待つ必要があるかもしれないページに表示されます:

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

button = wait(browser, 10).until(EC.presence_of_element_located((By.XPATH,"//img[@id='next_button']"))) 
button.click() 
+0

申し訳ありませんが、私の間違いは、今私はsrcで編集しました。 – rurucatcat

+0

私はあなたの提案、それは仕事ではない、このエラー** 'WebDriver'オブジェクトは呼び出し可能ではありません** – rurucatcat

+0

この例外の原因となる行を表示できますか? – Andersson

0

私はまた、次のコードを使用してロードするためのページを待っていることをお勧め:

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 
from selenium.common.exceptions import TimeoutException 

try: 
    element = WebDriverWait(browser, 15).until(EC.presence_of_element_located((By.XPATH, "//img[@id='next_button']"))) 
    browser.find_element_by_xpath("//img[@id='next_button']").click()  
except TimeoutException: 
    print 'Timeout - No tag found' 
    continue 

または使用:

WebDriverWait(browser, 15).until(lambda driver: driver.find_elements(By.XPATH,"//img[@id='next_button']")) 
+0

エラー**タイムアウト - タグが見つかりません** しかし確かにxpathは正しいです、becoz私はファイヤーパスを使用します – rurucatcat

+0

どのwebdriverを使用していますか? –

+0

私はchromedriverをmac python2.7で使用しています。 – rurucatcat

関連する問題