简体   繁体   English

无法在页面Selenium python上单击元素

[英]Unable to click element on page Selenium python

I am trying to move to page 2 and beyond of this page (pagination) with python selenium and spent a few hours on this. 我正在尝试使用python硒移动到页面2以及该页面(分页)之外,并在此上花费了几个小时。 I am getting this error, and would be thankful of any help..Error from chromedriver 我收到此错误,并感谢您提供任何帮助。

is not clickable at point(). Other element would receive the click

My code so far: 到目前为止,我的代码:

class Chezacash:
    t1 = time.time()
    driver = webdriver.Chrome(chromedriver)


    def controller(self):
        self.driver.get("https://www.chezacash.com/#/home/")
        element = WebDriverWait(self.driver, 10).until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "div.panel-heading")))    
        soup = BeautifulSoup(self.driver.page_source.encode('utf-8'),"html.parser")
        self.parser(soup)
        self.driver.find_element(By.XPATH, "//li[@class='paginate_button active']/following-sibling::li").click()
        time.sleep(2)
        soup = BeautifulSoup(self.driver.page_source.encode('utf-8'),"html.parser")
        self.parser(soup)


    def parser(self, soup):
        for i in soup.find("table", {"id":"DataTables_Table_1"}).tbody.contents:
            date =  i.findAll("td")[0].get_text().strip()
            time =  i.findAll("td")[1].get_text().strip()
            home =   i.findAll("td")[4].div.span.get_text().strip().encode("utf-8")
            home_odds =  i.findAll("td")[4].div.findAll("span")[1].get_text().strip()
            draw_odds =  i.findAll("td")[5].div.findAll("span")[1].get_text().strip()
            away =   i.findAll("td")[6].div.span.get_text().strip().encode("utf-8")
            away_odds =  i.findAll("td")[6].div.findAll("span")[1].get_text().strip()
            print home

cheza = Chezacash()
try:
    cheza.controller()
except:
    cheza.driver.service.process.send_signal(signal.SIGTERM) # kill the specific phantomjs child proc                            # quit the node proc
    cheza.driver.quit()
    traceback.print_exc()

What if instead you would locate the "Next" button by link text , scroll into it's view and then click: 如果相反,您将通过链接文本找到“下一步”按钮,滚动到视图中,然后单击:

next_button = self.driver.find_element_by_link_text("Next")
self.driver.execute_script("arguments[0].scrollIntoView();", next_button)
next_button.click()

I would also maximize the browser window before navigating to the page: 在导航到页面之前,我还将最大化浏览器窗口:

self.driver.maximize_window()
self.driver.get("https://www.chezacash.com/#/home/")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM