Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 作业未滚动到网页上的特定文本_Python_Python 3.x_Selenium_Scroll_Web Scraping - Fatal编程技术网

Python 作业未滚动到网页上的特定文本

Python 作业未滚动到网页上的特定文本,python,python-3.x,selenium,scroll,web-scraping,Python,Python 3.x,Selenium,Scroll,Web Scraping,我有一份工作,除了滚动到这个元素外,工作非常出色://span[text()=“Next Page”] 当我手动滚动时,它往往会工作 我试图解决的问题是滚动到此文本: element = driver.find_element_by_xpath('//span[text()="Next Page"]') driver.execute_script("return arguments[0].scrollIntoView();", element) 以及: clickMe = wait(drive

我有一份工作,除了滚动到这个元素外,工作非常出色:
//span[text()=“Next Page”]

当我手动滚动时,它往往会工作

我试图解决的问题是滚动到此文本:

element = driver.find_element_by_xpath('//span[text()="Next Page"]')
driver.execute_script("return arguments[0].scrollIntoView();", element)
以及:

clickMe = wait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, ('//span[text()="Next Page"]'))))
clickMe2 = driver.find_elements_by_xpath('//span[text()="Next Page"]')
actions = ActionChains(driver)
actions.move_to_element(clickMe2).click()
element = driver.find_element_by_xpath('//span[text()="Next Page"]')
element.location_once_scrolled_into_view
driver.execute_script("arguments[0].scrollIntoView();", clickMe2)
它遍历作业,然后在以下行中给出错误:
driver.execute_脚本(“参数[0]。scrollIntoView();”,clickMe2)

完全错误:

Traceback (most recent call last):
  File "C:/Users/Bain3/PycharmProjects/untitled4/Crownbet.py", line 2674, in <module>
    driver.execute_script("arguments[0].scrollIntoView();", clickMe2)
  File "C:\Users\Bain3\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 532, in execute_script
    'args': converted_args})['value']
  File "C:\Users\Bain3\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 297, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Bain3\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: arguments[0].scrollIntoView is not a function
  (Session info: chrome=61.0.3163.100)
  (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Windows NT 10.0.15063 x86_64) 
但是,它似乎滚动整个页面,而不是滚动到特定的元素。这与:

clickMe = wait(driver, 15).until(EC.element_to_be_clickable((By.XPATH, ('//span[text()="Next Page"]'))))
element1 = driver.find_element_by_xpath('//span[text()="Next Page"]')
driver.execute_script("return arguments[0].scrollIntoView();", element1)

请参阅以下代码:-

targetElement = driver.findElement(By.xpath("your xpath"));
JavascriptExecutor js = ((JavascriptExecutor) driver);
// This:
js.executeScript("arguments[0].scrollIntoView(true);", targetElement);
targetElement.click();
// Or maybe even just:
js.executeScript("arguments[0].click();", targetElement);

实际上,您正在向右滚动到所需的元素,但是有一个导航面板(带有搜索栏、登录和立即加入按钮的面板),它固定在顶部,并覆盖了下一个按钮。您只需向上滚动一点,即可看到“下一步”按钮。请尝试以下代码:

from selenium.webdriver.common.keys import Keys

header = driver.find_element_by_tag_name('header')
driver.execute_script('arguments[0].hidden="true";', header)
element = driver.find_element_by_xpath('//span[text()="Next Page"]')
driver.execute_script("arguments[0].scrollIntoView();", element)
driver.find_element_by_tag_name('body').send_keys(Keys.UP)
element.click()

JavascriptExecutor js=(JavascriptExecutor)驱动程序;^语法错误:无效syntax@Andersson你知道为什么会出现这个问题吗。我最终还是让它滚动了下来,虽然它似乎滚动得很好,确实超过了我需要的元素,并给出了一个错误代码,结果它对我来说仍然不可点击:lenium.common.exceptions.WebDriverException:Message:未知错误:element。。。在点(883,31)处不可单击。其他元素将收到单击:…尝试
驱动程序。通过标记名称(“body”)查找元素。发送键(keys.UP+keys.UP)
而不仅仅是
驱动程序。通过标记名称(“body”)查找元素。当我添加time.sleep时,发送键(keys.UP)
似乎起作用。嗯,是否有等待向上滚动或类似命令。您也可以尝试隐藏标题:)调用此
header=driver。通过\u tag\u name('header')
和此
驱动程序查找\u元素。执行\u脚本('arguments[0]。hidden=“true”;,header)
就在我提供的代码之前,您是否将
标题定义为
标题=驱动程序。通过标签查找元素名称(“标题”)
from selenium.webdriver.common.keys import Keys

header = driver.find_element_by_tag_name('header')
driver.execute_script('arguments[0].hidden="true";', header)
element = driver.find_element_by_xpath('//span[text()="Next Page"]')
driver.execute_script("arguments[0].scrollIntoView();", element)
driver.find_element_by_tag_name('body').send_keys(Keys.UP)
element.click()