在python selenium中使用JS脚本向下滚动

时间:2017-11-05 20:57:20

标签: javascript python html selenium

所以,我试图向下滚动直到使用以下代码显示某个文本,但是一旦我转到页面驱动程序退出,请使用以下代码。

def scroll_wait():
    wait = WebDriverWait(driver, 10)
    find_elem = None
    scroll_from = 0
    scroll_limit = 3000
    while not find_elem:
        sleep(2)
        driver.execute_script("window.scrollTo(%d, %d);" % (scroll_from, scroll_from + scroll_limit))
        scroll_from += scroll_limit
        try:
            find_elem = wait.until(EC.presence_of_element_located((By.XPATH, "//h3[@class='uiHeaderTitle']")))

       except TimeoutException:
           pass
    driver.close()

我也尝试使用以下XPATH,但它只是在文本之后继续滚动,

(By.XPATH, "//*[contains(text(), 'More About You')]")

这是我试图滚动到的文本的HTML代码。

 <h3 class="uiHeaderTitle">More About You</h3>

1 个答案:

答案 0 :(得分:1)

对于Selenium,一种好的测试方法是构建一个纯HTML页面,它只包含你想要的东西(例如,一个h3)并模仿场景。我真的不知道你的问题,但你可以尝试的一个变化是presence_of_element_located如果它在DOM中,它将返回true,这意味着它不是必需的,这可能是它立即退出的原因。尝试更改为visibility_of_element_located

希望它有所帮助!