Условие, чтобы проверить, выполнена ли Selenium прокрутка на основе веб-элемента? - PullRequest
0 голосов
/ 20 февраля 2020

В настоящее время у меня есть скрипт, который будет go до TripAdvisor и попытаться очистить каждое изображение в этом конкретном фильтре. Мне было интересно, на какое условие я должен установить свое утверждение if, чтобы оно вырвалось за время l oop, а затем проанализировало список URL, чтобы дать мне четкие ссылки на каждое изображение. Я просто смущен тем, как я могу определить, достиг ли я конца, когда достиг последнего веб-элемента. Оператор if находится в самом конце перед последней печатью l oop. Любая помощь с благодарностью!

# 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...