2017-07-14 20 views
-1

私はPythonとセレニウムを使ってスクリプトを実装しました。 しかし、このスクリプトは機能しません。 ページ上の要素を見つけることができません。 スクリプトを修正する手助けをしてください。ありがとうございました! enter image description herePython + Selenium。要素を見つけることができません

from selenium import webdriver 
import time 
browser=webdriver.Firefox() 
browser.get('http://rutracker.ignn.ru') 
browser.switch_to_frame(browser.find_element_by_xpath('//iframe[starts-with(@class,"tblock_")]')) 
browser.find_element_by_xpath("//a[contains(@href,'tmozs.com')]").click() 
time.sleep(10) 
browser.quit() 
+0

質問に間違いを含めてください。 –

+0

トレースバック(最新の最後の呼び出し): ファイル "e:\ python \ test3.py"、行5、 browser.fitch_to_frame( '// iframe [starts-with(@class、 "tblock_ 「)] ')) ファイル "C:\ Python27 \ libには\サイト - パッケージ\セレン\ webdriverをfind_element_by_xpath 戻りself.find_elementでリモートの\ webdriver.py"、行293、\(で= By.XPATH、値= "value"] ファイル "C:¥Python27¥lib¥site-packages¥selenium¥webdriver¥remote¥webdriver.py"、行752、find_element 'value':value})['value'] ファイル "C: \ Python27 \ libには\サイト - パッケージ\セレン\ webdriverをリモートの\ webdriver.py "行236、中 –

+0

self.error_handler.check_response(レスポンス) ファイルを実行" \ C:\ Python27 \ libに\のsite-packages \セレン\ webdrアイバーリモートの\ check_response レイズexception_classでerrorhandler.py」、行192、(メッセージ、画面、スタックトレース) selenium.common.exceptions.NoSuchElementException \:メッセージ:要素が見つかりません:// IFRAME [開始-とを(@class 、「tblock_」)] –

答えて

0

あなたはそれにスイッチする前にDOMiframe表示され、必要とされるまでいくつかの時間を待つことを試みることができます。

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

wait(browser, 10).until(EC.frame_to_be_available_and_switch_to_it(browser.find_element_by_xpath('//iframe[contains(@src, "//tmozs.com/")]'))) 
0

ここであなたの質問への答えです:

あなたが使用することができます

:コードブロックの下に左上隅に広告をクリックします3210

私はtime.sleep()を排他的に使用して、この溶液の調製時間を短縮しました。すべてtime.sleep()が、これは、あなたの質問に答えるなら、私を知ってみましょうExplicit Wait

from selenium import webdriver 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 
import time 

binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe') 
driver = webdriver.Firefox(firefox_binary=binary, executable_path="C:\\Utility\\BrowserDrivers\\geckodriver.exe") 
driver.get('http://rutracker.ignn.ru') 
time.sleep(5) 
driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@src,'tmozs.com/jsonp.php')]")) 
time.sleep(5) 
driver.find_element_by_xpath("//div[@class='feed-inner']/div[@class='feed-cell'][1]/a[@class='feed-cell-inner']/div[@class='teaser']/table[@class='teaser-inner']//img[contains(@src,'in.ogoyj.com')]").click() 
time.sleep(5) 
driver.quit() 

に置き換えることができます。

+0

@AndrewF。私の答えをチェックする機会を得ましたか?ありがとう – DebanjanB

関連する問題