javascript - Python中使用Selenium模拟鼠标ScrollUp

标签 javascript jquery python selenium mousewheel

您好,我正在尝试使用 Selenium 和 Python 中的 PhantomJs 来模拟“自然”的鼠标滚动。

我想模拟鼠标滚轮向上滚动以返回页面。 可以用 JavaScript 做到这一点吗? 实际上,我使用此命令是为了在页面底部滚动。

self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

所以我认为可以运行一些像这样的脚本来模拟鼠标的流畅度。

最佳答案

事实上,到目前为止您还没有发布您尝试过的内容 - 顺便说一句。

以下编码风格适合我 - 可能有更好的实践。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC



driver = webdriver.Firefox()

driver.get("https://www.google.com/search?q=a1+plumbing+boise")


link = driver.find_element_by_link_text('View all Google reviews')
link.click()


try:
    print "about to look for element"
    def find(driver):
        e = driver.find_element(By.CLASS_NAME ,'_wu')
        if (e.get_attribute("disabled")=='true'):
            return False
        return e
    element = WebDriverWait(driver, 10).until(find)
    print "still looking?"
finally: print 'yowp'

nam = driver.find_element(By.CLASS_NAME ,'_wu')

#get length of review
revcnt = driver.find_element(By.XPATH ,"//span[@class='_Mnc _yz']")
revcnt = int(revcnt.text.replace(" reviews","").strip())
print revcnt
# wait for reviews to appear
wait = WebDriverWait(driver, 10)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span.review-snippet")))#review-snippet
cntr = 0
reviews = []
while True:#cntr<=revcnt:
    global cntr
    reviews = driver.find_elements_by_css_selector("div._ju")
    driver.execute_script("arguments[0].scrollIntoView();", reviews[-1])
    print len(reviews)
    cntr+=1
    if len(reviews) == revcnt:
        break

mores  = driver.find_elements_by_xpath("//a[@class='fl review-more-link']")
for more in mores:
    more.click()

js_code = "return document.getElementsByClassName('_ju');"
your_elements = driver.execute_script(js_code)

#print len(your_elements)
for i in your_elements:
    print i.text.encode('utf-8') 

driver.quit()

关于javascript - Python中使用Selenium模拟鼠标ScrollUp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33012792/

相关文章:

javascript - 如何使用 jquery 创建我的图像数组?

python - 用于解析完整 Iptables 日志 Python 的正则表达式代码

javascript - http ://whateverorigin. org/的跨域访问问题

JavaScript:在 Canvas 中旋转对象

javascript - jquery - 从表单中获取所有值并将其放入文本区域中

jquery - 通过flask中的查询字符串获取表单数据

python - 检查单词是否在 NLTK 同义词集中的最快方法?

javascript - 将 css 样式表应用于内联 svg 元素而不将其加载到页面上

javascript - Jasny BootStrap,输入类型的设置值 ="file"

php - 模态不在 php (CodeIgniter) 中使用 javascript 加载