我想弄清楚如何使用硒执行下一页单击新闻发布页面上。这是我的代码,将转到正确的网站并执行搜索以获取正确的新闻发布文章主题页。此网站已配置为在搜索执行后查看第1页上的每个新闻稿,您还必须选择页面底部的更多新闻结果按钮。我能够毫无问题地进入整个第1页的新闻栏目。这是我的代码,执行搜索和页面点击。ElementNotVisibleException下一页按钮单击时出现Python/Selenium错误
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
browser = webdriver.Chrome()
browser.get('http://www.businesswire.com/portal/site/home/')
search_box_element = browser.find_element_by_id('bw-search-input')
search_box_element.clear()
search_box_element.send_keys('biotechnology')
search_box_element.send_keys(Keys.ENTER)
search_box_element_two = browser.find_element_by_id('more-news-results')
search_box_element_two.click()
这部分的代码工作正常,但我希望能够点击下一步按钮移动到等2页,然后第3页和。下面是我认为会的工作代码,但它不会:
next_page_click_element = browser.find_element_by_class_name("bw-paging-next")
next_page_click_element.click()
的这部分代码抛出一个错误:
selenium.common.exceptions.ElementNotVisibleException: Message:
element not visible
我一直在使用
next_page_click_element = browser.find_element_by_xpath('//*[@id="more-news-pagination"]/div/div[1]/div/a')
也尝试但得到了相同的错误信息。我还尝试在next_page_click_element部分之前添加这些代码行。
element_present = EC.presence_of_element_located((By.ID, "bw-paging-next"))
WebDriverWait(browser, 10).until(element_present)
虽然这确实会导致程序等待它返回此错误消息:
raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
就如何解决这个问题的任何建议,将不胜感激。
试着用'(By.CLASS_NAME,“bw-paging-next”)替换'(By.ID,“bw-paging-next”)'' – Andersson
嗨,谢谢你的回应。不幸的是,这是行不通的。用By.CLASS_NAME替换By.ID会返回我的原始元素不可见错误消息。这种变化不会导致等待时间的发生。 – user3798654
尝试在点击 – Andersson