当我试图点击Curry的PC World电视页面中的Next Page链接时,我遇到了一个奇怪的问题,那就是使用Python Selify。请参阅(https://www.currys.co.uk/tv-and-audio/televisions/tvs)上的下一步按钮
我用Chrome在非Headless模式下进行了测试,所以当点击时,我可以看到Next按钮的轮廓被高亮显示,但它不会像预期的那样导航到下一个页面URL。
以下是我在上面的页面上尝试过的:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
from selenium.common.exceptions import NoSuchElementException
import time
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
driver.set_window_size(1920, 1080)
driver.maximize_window()
driver.get('https://www.currys.co.uk/tv-and-audio/televisions/tvs')
next_page_link = WebDriverWait(driver, 10).until(
ec.element_to_be_clickable((By.CSS_SELECTOR,
'ul.pagination '
'li.pagination-arrrow-next a.page-next')))
next_page_link.click()
time.sleep(10)
我还尝试使用执行脚本(这也不起作用):
driver.execute_script('arguments[0].click()', next_page_link)
我能够从link元素中提取href(因此我知道它是正确的元素):
href = next_page_link.get_attribute('href')
print("href is: {}".format(href))
# href is: https://www.currys.co.uk/tv-and-audio/televisions/tvs?start=20&sz=20
我有点不知道这里可能出了什么问题,如果有任何帮助,将不胜感激!
1条答案
按热度按时间fbcarpbf1#
我在这里看到了以下问题:
1.您必须关闭Accept Cookie弹出窗口。
1.您需要将页面向下滚动到页面导航元素。
1.Selify确实不会使页面转到下一页但即使我手动单击
Next
按钮,甚至手动单击任何其他分页按钮,页面也不会更改。因此,问题出在网页本身,而不是 selenium 。这是我使用的代码: