2017-07-14 173 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

Traceback(最近一次調用最後一次): 文件「e:\ python \ test3.py」,第5行,在 browser.switch_to_frame('// iframe [starts-with(@class,「tblock_ 「)]')) find_element_by_xpath中的第293行文件」C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py「 return self.find_element(by = By.XPATH,value = xpath) 文件「C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py」,第752行,在find_element中 'value':value})['value'] 「 \ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py「236行,執行 –

+0

self.error_handler.check_response(響應) 文件」C:\ Python27 \ lib \ site-packages \ selenium \ webdr iver \ remote \ errorhandler.py「,第192行,in check_response raise exception_class(message,screen,stacktrace) selenium.common.exceptions.NoSuchElementException:消息:無法定位元素:// iframe [starts-with(@class ,「tblock_」)] –

回答

0

您可以嘗試等待一段時間,直到需要iframe出現在DOM開關之前它:

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

這裏是回答你的問題:

可以使用在代碼塊下方點擊左上角的廣告:

我已專門使用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

相關問題