栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

selenium知识点(二)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

selenium知识点(二)

selenium知识点(二)

文章目录
  • selenium知识点(二)
  • 页面等待
    • 为什么需要页面等待
    • 如何处理页面等待的问题?
    • 代码案例实现
  • 操作多窗口


页面等待 为什么需要页面等待

1、网页元素需要加载时间

2、有时候一些操作只有在某种条件成熟的情况下才能做

如何处理页面等待的问题?

time.sleep(3)

selenium有自己的等待方式提供了隐式等待和显示等待

代码案例实现
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec

"""
#为什么需要页面等待
1、网页元素需要加载时间
2、有时候一些操作只有在某种条件成熟的情况下才能做

#如何处理页面等待的问题?
time.sleep(3)
selenium有自己的等待方式提供了隐式等待和显示等待
"""

driver = webdriver.Chrome()
# driver.get("https://www.baidu.com/")
driver.get("https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc")
# 会把设定时间用完,再进行操作
# time.sleep(10)

# 隐式等待(更快)
# 赋予一个全局等待时间
# driver.implicitly_wait(10)

# 显示等待
# 输入出发地
WebDriverWait(driver, 1000).until(
    ec.text_to_be_present_in_element_value((By.ID, 'fromStation'), 'CSQ')
)
# 显示等待
# 输入目的地
WebDriverWait(driver, 1000).until(
    ec.text_to_be_present_in_element_value((By.ID, 'toStation'), 'BJP')
)

tic_tag = driver.find_element_by_id('query_ticket')
# execute_script用来执行js代码的
driver.execute_script('arguments[0].click', tic_tag)
tic_tag.click()

操作多窗口
from selenium import webdriver
import time
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.Chrome()
driver.get("https://www.baidu.com/")

time.sleep(2)

# 会直接覆盖网站
# driver.get("https://www.douban.com/")

# 如何同时打开两个网页
driver.execute_script('window.open("https://www.douban.com/")')

time.sleep(2)

driver.execute_script('window.open("https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc")')
time.sleep(2)

# close()关闭当前锁打开网页
# driver.close()
# 通过close()测试 我们发现 关闭的都是第一个打开的网页

# 获取当前操作的url
print(driver.current_url)
# 如果想要切换操作其他页面 需要切换selenium的视角
driver.switch_to.window(driver.window_handles[2])
print(driver.current_url)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935047.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号