元素不可点击的硒python

时间:2017-08-09 10:36:37

标签: 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)任何想法它为什么会发生。我已经使用了显式等待,直到元素可见。之后我也得到了错误。提前谢谢!

1 个答案:

答案 0 :(得分:1)

使用JavascriptExecutor。它将直接通过JS运作。它应该工作。我给出了一个使用JavascriptExecutor

单击任何元素的示例

代码应如下所示: -

lib

注意: - 根据需要更改上述代码中的定位器

希望它会对你有所帮助:)。