python自动化 - 页面操作

1. 浏览器打开新的窗口时,需要切换到新的窗口上

# 切换浏览器窗口
wins = driver.window_handles
driver.switch_to.window(wins[-1]) # 先获取当前所有窗口,然后通过下标进行切换

2.  定位iframe的 name进行切换,没有name用下标,切换之后只能到iframe的页面上定位元素

 driver.switch_to.frame("login_frame_qq") 

3. alert 切换

    alert = driver.switch_to.alert  # 切换至alert上面

   print(alert.text)  # 获取弹框文本

 alert.accept()   # 确认弹窗

4. 鼠标悬浮

# 导包 ActionChains

from selenium.webdriver.common.action_chains import ActionChains

# 1) 找到鼠标要操作的元素
ele = driver.find_element(By.XPATH, "//span[@name='tj_settingicon']")
# 2) 实例化ActionChains
ac = ActionChains(driver)
# 3) 调用鼠标行为
ac.move_to_element(ele)
# 4) 调用perform() 来执行鼠标动作
ac.perform()
# 2) 3) 4)种方法写在一起
ActionChains(driver).move_to_element(ele).perform()

5. select 下拉框选择

from selenium.webdriver.support.select import Select
select_element = driver.find_element(By.XPATH, "//select[@id='sid']")
# 将定位到的元素放到 Select()中
s = Select(
select_element)
s.select_by_index(2) # 根据下标来选择
s.select_by_value("doc") # 根据value来选择
s.select_by_visible_text("RTF 文件") # 根据文本来选择

6. 键盘操作

from selenium.webdriver.common.keys import Keys

search = driver.find_element(By.XPATH, "//*[@id='kw']")
search.send_keys("腾讯课堂", Keys.ENTER)

7. 网页滚动条操作

  tencent_class = driver.find_element(By.XPATH, "//a[@aria-label='百度百科']") # 获取元素

  driver.execute_script('aguments[0].scrollIntoview(false)', tencent_class)

   # 将滚动条滑至元素位置 scrollIntoview(false) false 将元素显示在底部,true显示在顶部

  # 操作js

  pha_js = "var a = arguments[0];a.readOnly=false;a.value='2020-04-01';" # 编写js命令

  ele = driver.find_element(By.XPATH, "//*[@id='train_date']")

  driver.excute_script(pha_js,ele)

8.  上传操作

9. 页面返回、刷新
  driver.back()  # 页面返回上一页

  driver.refresh() # 页面刷新


posted @ 2022-03-01 10:17  JiZhaoG  阅读(1288)  评论(0编辑  收藏  举报