相关疑难解决方法(0)

什么是offsetHeight,clientHeight,scrollHeight?

想解释之间有什么区别的offsetHeight,clientHeightscrollHeightoffsetWidth,clientWidthscrollWidth

在客户端工作之前必须知道这种差异.否则他们的一半生命将用于修复UI.

小提琴或下面的内联:

function whatis(propType) {
  var mainDiv = document.getElementById("MainDIV");
  if (window.sampleDiv == null) {
    var div = document.createElement("div");
    window.sampleDiv = div;
  }
  div = window.sampleDiv;
  var propTypeWidth = propType.toLowerCase() + "Width";
  var propTypeHeight = propType + "Height";

  var computedStyle = window.getComputedStyle(mainDiv, null);
  var borderLeftWidth = computedStyle.getPropertyValue("border-left-width");
  var borderTopWidth = computedStyle.getPropertyValue("border-top-width");

  div.style.position = "absolute";
  div.style.left = mainDiv.offsetLeft + Math.round(parseFloat((propType == "client") ? borderLeftWidth : 0)) + "px"; …
Run Code Online (Sandbox Code Playgroud)

html javascript dom offsetheight

205
推荐指数
4
解决办法
10万
查看次数

使用Python中的PhantomJS向下滚动到无限页面的底部

我成功地使用Selenium和PhantomJS来重新加载动态加载的无限滚动页面,如下例所示.但是如何修改它以便不是手动设置一些重载,程序在达到最低点时停止了?

reloads = 100000 #set the number of times to reload
pause = 0 #initial time interval between reloads
driver = webdriver.PhantomJS()

# Load Twitter page and click to view all results
driver.get(url)
driver.find_element_by_link_text("All").click()

# Keep reloading and pausing to reach the bottom
for _ in range(reloads):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(pause)

text_file.write(driver.page_source.encode("utf-8"))
text_file.close()
Run Code Online (Sandbox Code Playgroud)

python phantomjs selenium-webdriver

19
推荐指数
1
解决办法
1万
查看次数

如何使用python中的selenium滚动到页面的末尾

我试图滚动到页面的末尾,以便我可以使所有数据可见并提取它.我试图找到它的命令,但它在java(driver.executeScript)中可用,但找不到python.现在我正在使计算机按下结束键一千次:

while i<1000:
    scroll = driver.find_element_by_tag_name('body').send_keys(Keys.END)
    i+=1
Run Code Online (Sandbox Code Playgroud)

我还尝试了driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")但它滚动到加载页面的末尾和END键相同的东西.一旦到达页面底部,下一个内容就会加载.但现在它不再滚动.

我知道会有一个非常好的选择.请帮助.

python selenium

11
推荐指数
3
解决办法
1万
查看次数

如何用selenium滚动页面

我正在使用FirefoxDriver webdriver.在firefox窗口中加载的页面是一个大页面,我想使用selenium滚动该页面.

我想知道如何做到这一点.

谢谢.

java selenium

8
推荐指数
1
解决办法
3万
查看次数

由于底部导航,Codeception 验收测试失败

当我尝试单击链接时,我使用 codeception 进行的一项测试出现问题,窗口滚动到浏览器认为它应该去的位置,但是,我的网站有一个导航栏附加到窗口底部,所以当浏览器停止滚动,底部导航覆盖链接。

因此,测试失败。有谁知道如何将其配置为滚动得更远一点?使用 Codeception 1.8.5。

谢谢

php codeception

4
推荐指数
1
解决办法
5110
查看次数

Selenium 错误信息“selenium.webdriver 没有属性执行脚本”

我正在使用 selenium 来抓取无限滚动页面。

我正在尝试使用此代码:

import time
import pandas as np
import numpy as np

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

browser = webdriver.Chrome()
url = 'https://twitter.com/search?f=tweets&q=csubwaystats%20since%3A2018-05-28%20until%3A2018-08-28'

browser.get(url)
time.sleep(1)

SCROLL_PAUSE_TIME = 0.5

# Get scroll height
last_height = webdriver.execute_script("return document.body.scrollHeight")

while True:
    # Scroll down to bottom
    webdriver.execute_script("window.scrollTo(0,document.body.scrollHeight);")

    # Wait to load page
    time.sleep(SCROLL_PAUSE_TIME)

    # Calculate new scroll height and compare with last scroll height
    new_height = webdriver.execute_script("return document.body.scrollHeight")
    if new_height == last_height:
        break
    last_height …
Run Code Online (Sandbox Code Playgroud)

python selenium driver selenium-webdriver

4
推荐指数
1
解决办法
1万
查看次数

Selenium Python:如何在弹出窗口中向下滚动

我正在研究一个 Linkedin 网络抓取项目。我正在尝试获取某人感兴趣的公司列表(注意我没有使用 API)。这是一个动态网站,所以我需要在抓取公司名称的同时向下滚动。我知道如何在主窗口中执行此操作,但由于兴趣是一个弹出窗口,因此滚动解决方案不起作用。到目前为止我的代码是:

from selenium.webdriver.common.keys import Keys
bar = driver.find_element_by_xpath('//ul[@class="entity-list row"]')
bar.send_keys(Keys.END)
Run Code Online (Sandbox Code Playgroud)

由于它不起作用,我也尝试过:

bar = driver.find_element_by_xpath('//ul[@class="entity-list row"]')
driver.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', bar)
Run Code Online (Sandbox Code Playgroud)

问题是我不是在弹出窗口上操作,而是在主窗口上操作,所以它没有达到预期的效果。

在此处输入图片说明

javascript python selenium linkedin web-scraping

3
推荐指数
1
解决办法
9789
查看次数

使用 Selenium Python chromeDriver 向下滚动到结束页面

请帮忙,我想向下滚动到包的末尾,但它停止了。我尝试的代码在这里

browser = webdriver.Chrome()
browser.get(url)
button = browser.find_element_by_tag_name("html")
old=""
new=" "

while len(new)>len(old):
    old = browser.page_source
    button.send_keys(Keys.END)
    browser.implicitly_wait(40)
    new = browser.page_source
Run Code Online (Sandbox Code Playgroud)

python selenium-chromedriver

3
推荐指数
1
解决办法
9410
查看次数

硒不滚动

我有一个网站,我想使用 Selenium 以及 Chrome 和 Python 来滚动浏览。以前,当我想向下滚动时,我总是给出以下命令:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
Run Code Online (Sandbox Code Playgroud)

但是,由于我不明白的原因,该网站阻止我滚动。有人有建议吗?

以下是访问我遇到问题的页面的方法:

  1. 前往https://shopwoodmans.com
  2. 点击“店内”
  3. 点击任意商店
  4. 单击任意“商店过道”选项

python selenium selenium-chromedriver

2
推荐指数
1
解决办法
3014
查看次数

如何在 selenium 中处理延迟加载的图像?

在标记为重复之前,请考虑我已经浏览了许多相关的堆栈溢出帖子,以及网站和文章。我还没有找到解决方案。

这个问题是这个问题的后续,Selenium Webdriver 没有找到 XPATH 尽管看似相同的字符串。我通过更新代码以更优雅的方式工作,确定问题实际上并非来自 xpath 方法:

for item in feed:
    img_div = item.find_element_by_class_name('listing-cover-photo ')
    img = WebDriverWait(img_div, 10).until(
            EC.visibility_of_element_located((By.TAG_NAME, 'img')))
Run Code Online (Sandbox Code Playgroud)

这适用于前 5ish 元素。但是在那之后它超时了,通过获取 img_div 的内部 html 并打印它,我发现对于超时的元素,而不是我想要的图像,有一个带有“lazyload-placeholder”类的 div。这导致我抓取延迟加载的元素,但我找不到答案。如您所见,我正在使用 WebDriverWait 尝试为其加载时间,但我也尝试了站点范围的等待调用以及 time.sleep 调用。等待似乎并不能解决它。我正在寻找处理这些延迟加载图像的最简单方法,最好是在 Selenium 中,但如果有其他库或产品可以与我已经拥有的 Selenium 代码一起使用,那就太好了。任何帮助表示赞赏。

selenium lazy-loading webdriver web-scraping python-3.x

1
推荐指数
1
解决办法
1457
查看次数

如何使用硒在 Youtube 中向下滚动?

我想在需要向下滚动的 Youtube 中启用评论框。
这是我现在正在做的事情:-

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.youtube.com/watch?v=l5LfjYmNEJs&t=160s")

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
Run Code Online (Sandbox Code Playgroud)

但它只会向下滚动一点,但不足以启用评论框。
我该怎么办?

javascript python selenium selenium-chromedriver selenium-webdriver

0
推荐指数
1
解决办法
1978
查看次数