检查 Selenium 是否完成基于 Web 元素的滚动的条件?

2023-12-11

目前我有一个脚本将转到到到网并尝试抓取该特定过滤器中的每个图像。我想知道我应该将 if 语句设置为什么条件,以便它能够跳出 while 循环,然后解析 url 列表,为我提供每个图像的清晰 url 链接。我只是很困惑,一旦到达最后一个网络元素,我如何判断是否已到达终点。 if 语句位于最后一个打印循环之前的末尾。任何帮助是极大的赞赏!

# import dependencies
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import re
import selenium
import io
import pandas as pd
import urllib.request
import urllib.parse
import requests
from bs4 import BeautifulSoup
import pandas as pd
from selenium.webdriver.common.action_chains import ActionChains
from selenium import webdriver
import time
from _datetime import datetime
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
options = webdriver.ChromeOptions()
options.headless=False

driver = webdriver.Chrome("/Users/rishi/Downloads/chromedriver 3")
driver.maximize_window()
prefs = {"profile.default_content_setting_values.notifications" : 2} 
options.add_experimental_option("prefs", prefs)

#open up website
driver.get(
    "https://www.tripadvisor.com/Hotel_Review-g28970-d84078-Reviews-Hyatt_Regency_Washington_on_Capitol_Hill-Washington_DC_District_of_Columbia.html#/media/84078/?albumid=101&type=2&category=101")

image_url = []

end = False
while not(end):
    #wait until element is found and then store all webelements into list
    images = WebDriverWait(driver, 20).until(
        EC.presence_of_all_elements_located(
            (By.XPATH, '//*[@class="media-viewer-dt-root-GalleryImageWithOverlay__galleryImage--1Drp0"]')))

    #iterate through visible images and acquire their url based on background image style
    for index, image in enumerate(images):
        image_url.append(images[index].value_of_css_property("background-image"))

    #if you are at the end of the page then leave loop
    # if(length == end_length):
    #     end = True

    #move to next visible images in the array
    driver.execute_script("arguments[0].scrollIntoView();", images[-1])

    #wait one second
    time.sleep(1)

    if():
        end = True

#clean the list to provide clear links
for i in range(len(image_url)):
    start = image_url[i].find("url(\"") + len("url(\"")
    end = image_url[i].find("\")")
    print(image_url[i][start:end]) 

#print(image_url)

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查 Selenium 是否完成基于 Web 元素的滚动的条件? 的相关文章

随机推荐

  • 如何在 Azure 应用服务中使用 .Net Core 应用程序发布 Angular 9 Universal

    我使用 Angular 9 创建了一个 Asp NET Core Web 应用程序 我已将 Angular Universal 添加到我的应用程序中 现在我需要将我的应用程序发布到 Azure 应用程序服务中 我使用以下命令来构建应用程序
  • 支持文本路径的文本渲染库

    我需要一个良好 可靠的库或工具链 用于以编程方式将具有不同大小 字体 粗细等的文本渲染为 png 它还需要能够以弧线或路径渲染文本 我希望它能够很快 因为我会像在服务器上运行它一样 我尝试过使用 SVG 和librsvg 但这不会渲染
  • iPhone键盘返回键颜色

    我们可以改变iPhone键盘返回键颜色的颜色吗 苹果支持吗 如果是的话 你能帮我改变它吗 没有可用的公共 API 如果您使用私有 API 那么您的应用程序将在应用程序商店中被拒绝
  • 多种数据类型的列表?

    我有两个这样的课程 public class MachineLine public double X1 public double Y1 public double X2 public double Y2 public double Thi
  • 如何从 Windows Phone 7 或 8 获取用户自己的手机号码

    我想提取 用户own手机号码 不是他的整个电话簿 我使用c 作为开发语言 谢谢 如果您想获取设备自己的电话号码 目前还不可能
  • Spring Cloud Dataflow 有什么好处?

    根据我所看到的 在 Spring Cloud Dataflow SCDF 中创建流将部署底层应用程序 绑定通信服务 如 RabbitMQ 设置 Spring Cloud Stream 环境变量并启动应用程序 这一切都可以使用 cf Push
  • 在 msvc 2010 中构建 boost MPI 时出错

    我已将 openmpi 安装在 C Program Files OpenMPI v1 5 4 win32 中 并希望编译 boost 以生成图形并行库 但出现以下错误 The system cannot find the path spec
  • 如何在 React JSX 中调用 Web API?

    我正在使用 React 和 Electron 编写一个音乐播放器 并希望添加音频元数据 以便获得 MPRIS 支持 所以我做了一些搜索并发现媒体会话API是我所需要的 为了测试它 我将上述链接包含的示例代码中的代码复制到我的项目中的函数中
  • JPA Query.getResultList() - 以通用方式使用

    我正在创建一个包含多个表的复杂查询 并且需要列出结果 通常 我使用EntityManager并将结果映射到 JPA Representation UserEntity user em find UserEntity class 5 然后我可
  • 设置和禁用 JToggleButton 的图标

    你好 我正在尝试制作一个使用 JToggleButton 的匹配记忆游戏 最重要的是 当我按下按钮时 它必须显示一张图片 并且我必须找到另一张相同的图片 所以问题是当我创建一个没有任何图标的按钮时我不能使用其他方法 setRollOverI
  • 过滤 elmah 中的异常文本

    有没有办法使用异常消息过滤 elma 中的异常 例子 System Web HttpException 请求超时 我不想过滤掉所有的 HttpException 而只想过滤掉超时的请求 System Web HttpException 超出
  • 如何读取带有空格的 cin 直到换行符?

    我希望从 C 中的 cin 读取当前位置直到换行符到字符串中 要读取的字符可能包含空格 我的第一遍失败 因为它停在第一个空格上 string result cin gt gt result 如果给出 cin cd my dir doSome
  • R:当情况并非如此时,LIME 在不同的特征编号上返回错误

    我正在构建克林顿和特朗普推文的文本分类器 数据可以在Kaggle 我正在使用 EDA 和建模quanteda包裹 library dplyr library stringr library quanteda library lime dat
  • 如何以编程方式获取 python.exe 位置? [复制]

    这个问题在这里已经有答案了 基本上我想获得 python 解释器的句柄 这样我就可以传递一个脚本文件来执行 从外部应用程序 这适用于 Linux 和 Windows Python 3 x gt gt gt import sys gt gt
  • 替换数组中的对象

    我有这个 JavaScript 对象 var arr1 id 124 name qqq id 589 name www id 45 name eee id 567 name rrr var arr2 id 124 name ttt id 4
  • React,从 json 加载本地图像

    是的 这个问题可能与其他问题重复 但我找不到这个问题的解决方案 我创造一些简单的东西 1 个读取 json 并加载图像的组件 The json images id 1 url assets images slider croissant o
  • 创建 SVG 进度圈

    有人知道如何在 svg 中创建一个圆形 进度条 吗 我需要指定圆圈的百分比 例如颜色在蛋糕形状中增长的百分比 只要我有一个属性可以改变其当前状态 增长就可以是静态的 以下是我曾经使用的想法 稍加修改css and animation标签我们
  • 如何在 Brightway 中保存新的 LCIA 方法

    我有以下格式的特征因素列表 biosphere3 key characterization factor 这是一个快速摘录 my cfs biosphere3 e259263c d1f1 449f bb9b 73c6d0a32a00 1 0
  • UserControl 与 Windows 之间的交互

    我创建了一个包含一些控件 按钮和复选框 的用户控件 之后 我在 WPF Windows 中添加了对该 UserControl 的引用 我想要做的是 当我单击 UserControl 中的按钮时 该按钮会触发一个操作并更改 Windows 中
  • 检查 Selenium 是否完成基于 Web 元素的滚动的条件?

    目前我有一个脚本将转到到到网并尝试抓取该特定过滤器中的每个图像 我想知道我应该将 if 语句设置为什么条件 以便它能够跳出 while 循环 然后解析 url 列表 为我提供每个图像的清晰 url 链接 我只是很困惑 一旦到达最后一个网络元