在Python Selenium中滚动到特定的DIV元素

时间:2019-10-11 06:02:39

标签: python selenium

我正在尝试做一个简单的Python Selenium自动化,其中脚本将单击一个链接,该链接会在页面顶部(Instagram个人资料)打开一个对话框。

上述对话框将显示关注者列表,但不幸的是,包含该列表的UL仅显示前12个关注者(或LI)。它由AJAX驱动,可以“加载更多”关注者。

无论如何,为了模拟加载更多关注者,我尝试了以下代码:

driver.find_element_by_xpath('/html/body/div[3]/div/div[2]/ul').send_keys(Keys.END)

driver.find_element_by_tag_name('body').send_keys(Keys.END)

不幸的是,它不起作用。我想知道是否有正确的方法(向下滚动到活动div或任何页面元素上)?

下面提供的图片显示了该页面的html结构。

enter image description here

感谢您的帮助,非常感谢!

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的方法吗?这将滚动到您提到的div元素。

Python代码

element = driver.find_element_by_xpath("xpath_of_div_element")
driver.execute_script("arguments[0].scrollIntoView(true);", element);

Java示例:

WebElement element = driver.findElement(By.id("id_of_div_element"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);

答案 1 :(得分:1)

使用此

liElement = driver.find_element_by_xpath("//div[@role='dialog']//ul//li[text()='required_li_element_visible_text']")
driver.execute_script("arguments[0].scrollIntoView(true);", liElement);