我正在尝试使用Google相册幻灯片制作一个Raspberry Pi动力数码相册。理想情况下,我希望能够通过Selenium自动执行登录过程,然后使用BeautifulSoup解析每个图像的唯一URL的html源。
谷歌照片似乎一次加载〜12张图片(可能更多/更少基于图片方向),这使得获取所有图片网址的列表更加困难。
我试图使用以下内容的变体来滚动图像的加载:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
不幸的是,该代码不会导致FireFox滚动。任何指针都将非常感激。我已将我的混淆代码包含在内以供审核:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from bs4 import BeautifulSoup
driver = webdriver.Firefox()
# print(driver.current_url)
driver.get('https://accounts.google.com/ServiceLogin? sacu=1&continue=https%3A%2F%2Fphotos.google.com%2Flogin&hl=en#identifier')
# print(driver.current_url)
elem = driver.find_element_by_name('Email')
elem.send_keys('******')
elem.send_keys(Keys.ENTER)
time.sleep(5)
elem = driver.find_element_by_name('Passwd')
elem.send_keys('******')
elem.send_keys(Keys.ENTER)
time.sleep(10)
driver.get('direct link to shared album')
time.sleep(5)
driver.execute_script("window.scrollBy(0, document.body.scrollHeight);")
答案 0 :(得分:1)
正如@ Y-B原因所述,您可以尝试Keys
来解决您的问题:
from selenium.webdriver.common.keys import Keys
driver.switch_to_active_element().send_keys(Keys.PAGE_DOWN)
答案 1 :(得分:1)
在这种特殊情况下,要求$.ajaxSetup({async: false});
$.ajax({
type: "POST",
async: "false",
url: "checkpass.php",
data: "password="+password,
success: function(html) {
var arr=$.parseJSON(html);
if(arr == "Successful") {
return true;
} else {
return false;
}
}
});
$.ajaxSetup({async: true});
切换到“活动元素”。产生了不良后果。当我发送driver
密钥时,什么都不会发生。当我要求PAGE_DOWN
按标签名称查找元素时,实现了此问题的解决方案。我能够指定我想要选择网站的Selenium
,然后发送body
密钥。解决方案如下所示。
PAGE_DOWN