Selenium web自动化-JS处理滚动条
一)整个浏览器的滚动条处理
需要掌握的是‘window.scrollTo()’
1A.scrollTo()
‘window.scrollTo(x,y)’ x,y 绝对坐标 掌握!!!
def test_46js1(self):
"""控制滚动条-整个浏览器-scrollTo()"""
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.get("https://www.baidu.com")
self.xin_find_element(self.driver, By.ID, 'kw').send_keys('Python')
self.xin_find_element(self.driver, By.ID, 'su').click()
time.sleep(2)
js1 = 'window.scrollTo(0,10000)'
self.driver.execute_script(js1)
time.sleep(2)
js2 = 'window.scrollTo(0,0)'
self.driver.execute_script(js2)
time.sleep(1)
self.driver.quit()
1B.scrollTo()
’document.documentElement.scrollTo(x,y)’ 了解
def test_46js4a(self):
"""控制滚动条-整个浏览器-scrollTo()"""
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.get("https://www.baidu.com")
self.xin_find_element(self.driver, By.ID, 'kw').send_keys('Python')
self.xin_find_element(self.driver, By.ID, 'su').click()
time.sleep(2)
js3 = 'document.documentElement.scrollTo(0,10000)'
self.driver.execute_script(js3)
time.sleep(2)
js4 = 'document.documentElement.scrollTo(0,0)'
self.driver.execute_script(js4)
time.sleep(1)
self.driver.quit()
二)内嵌窗口的滚动条的处理
3.scrollTo()
def test_46js7(self):
"""控制滚动条-内嵌滚动条-scrollTo()"""
driver = webdriver.Chrome()
driver.get(r'D:\new_web\内嵌div滚动条.html')
time.sleep(1)
js = 'document.getElementsByClassName("scroll")[0].scrollTo(10000,10000)'
driver.execute_script(js)
time.sleep(2)
js1 = 'document.getElementsByClassName("scroll")[0].scrollTo(0,0)'
driver.execute_script(js1)
time.sleep(2)
driver.quit()
三)滚动条拉到具体元素的位置
三)滚动条拉到具体元素的位置
打开网页有时候无法确定要操作的元素的位置,怎么办呢?
这个时候可以先让页面直接跳到元素出现的位置,然后再操作
就是说:将滚动条拖动到需要显示的元素的位置
target1111 = driver.find_element_by_xxx(“XXXXX”)
driver.execute_script(“arguments[0].scrollIntoView();”,target1111)
def test_46js9a(self):
"""滚动条拉到指定位置(具体元素)-target-scrollIntoView方法滚动当前元素,进入浏览器的可见区域"""
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.get("https://www.baidu.com")
self.xin_find_element(self.driver, By.ID, 'kw').send_keys('Python')
self.xin_find_element(self.driver, By.ID, 'su').click()
time.sleep(2)
# 下面两个方式都可以
# target11 = self.xin_find_element(self.driver, By.CSS_SELECTOR, 'div#page>a:nth-child(2)')
target11 = self.xin_find_element(self.driver, By.XPATH, '//div[@id="page"]/a[3]')
self.driver.execute_script("arguments[0].scrollIntoView();", target11)
time.sleep(2)
self.driver.quit()
浙公网安备 33010602011771号