2017-08-09 19 views
0

私はそれが消えるまでロードボタンをクリックし続けるpythonスクリプトを実行しようとしています。以下に示すように、私がしようとしているコードは次のとおりです。ここ要素がクリックできないselenium python

import csv 
import time 
import re 
from bs4 import BeautifulSoup 
from selenium.common.exceptions import NoSuchElementException 
from selenium import webdriver 
import requests 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

page=requests.get('https://www.killerfeatures.com/mobile/brands').content 
soup1=BeautifulSoup(page,"html5lib") 
brndsbox=soup1.find_all("div",attrs={"class":"brndsbox"}) 
count=0 
brand_link=[] 
for each in brndsbox: 
    x= each.find("span") 
    j=str(x).split('=')[5].split('"><')[0].replace('"',"") 
    brand_link+=["https://www.killerfeatures.com"+j] 


chromedriver=r"D:\MOBILE_JUNE_22_2017\old_files_\price raja mobile\working\chromedriver.exe" 
driver=webdriver.Chrome(chromedriver) 
for url in brand_link: 
    print url 
    driver.get(url) 
    track_count=0 
    while True: 
     try: 

      element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, "loadMoreRecords")) ) 
      element.click() 
      print "click", track_count 
      time.sleep(5) 
      track_count+=1 
     except NoSuchElementException: 
      break 

print "complete" 

問題は、それが起こっている理由を任意のアイデアselenium.common.exceptions.WebDriverException: Message: unknown error: Element is not clickable at point (636, 583)としてエラーを示しているです。私は既に要素が可視であるまで明示的に待機しています。それ以降も私はエラーになります。前もって感謝します!

+0

コードに関する問題はありますか? –

+0

コードは正常に実行されますが、無限ループに入ります。要素は存在しませんが、クリックし続けます。なぜそれが起こっているのか分かりません –

答えて

1

JavascriptExecutorを使用してください。それはJSを通して直接動作します。それは動作するはずです。

element=driver.find_element_by_xpath('YOURXPATH') 
driver.execute_script("arguments[0].click();", element) 

注: - - :必要性につき

が、それはあなたを助けることを願っとして上記のコードでロケータを変更する私は、コードが以下のようにする必要がありJavascriptExecutor

を使って任意の要素をクリックする例を与えています:)

関連する問題