锡林郭勒盟网站建设_网站建设公司_Tailwind CSS_seo优化
2026/1/12 19:56:06 网站建设 项目流程

1、页面弹窗

alert:只有确定按钮

alert = driver.find_element('xpath','//input[@onclick = "myalert()"]') alert.click() tc = driver.switch_to.alert #进入弹窗 tc.accept() #点击确定

prompt:弹窗可以输入文本,有确定、取消按钮

prompt = driver.find_element('xpath','//input[@onclick = "myprompt()"]') prompt.click() tc = driver.switch_to.alert #进入弹窗 tc.send_keys("弹窗文本输入") tc.accept() #点击确定

confirm:弹窗有哦确定、取消按钮

confirm = driver.find_element('xpath','//input[@onclick = "myconfirm()"]') confirm.click() tc = driver.switch_to.alert #进入弹窗 tc.accept() #点击确定 tc.dismiss() #点击取消

2、鼠标、键盘操作

常用的上传文件,系统弹窗选择文件页面无法定位,需要鼠标键盘操作,只支持英文名的文件

安装库:pip install pyuserinput -i https://pypi.tuna.tsinghua.edu.cn/simple
#导库: from pykeyboard import PyKeyboard from selenium.webdriver import ActionChains #获取文件上传的按钮元素 fileupload_element = driver.find_element('id','file') #滚动页面,把元素滑动到页面可见范围之内 fileupload_element.location_once_scrolled_into_view #点击文件上传 #fileupload_element.click() 默认的点击不生效,用ActionChains解决点击不生效的问题 ActionChains(driver).click(fileupload_element).perform() #等待文件选择弹窗 time.sleep(2) #输入文件路径,选择系统输入法为英文 keyboard = PyKeyboard() keyboard.type_string(r"d:\test.xlsx") #确认输入,按回车键 keyboard.press_keys([keyboard.enter_key])

3、显示等待

timeout=5 最大等待时间5s poll_frequency=0.5s 每0.5s调用一次method方法,自动默认0.5s,可不填写 message="元素不存在" 如果前面的条件不成立,就抛异常提示message
#导库: from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC #等待元素可见 WebDriverWait(driver,timeout=5,poll_frequency=0.5).until(method=EC.visibility_of_element_located(('id','百度')),message="元素不可见") #等待元素不可见 WebDriverWait(driver,timeout=5,poll_frequency=0.5).until_not(method=EC.visibility_of_element_located(('id','百度')),message="元素可见") #等待元素可点击 WebDriverWait(driver,timeout=5,poll_frequency=0.5).until(method=EC.element_to_be_clickable(('id','百度')),message="元素不可点击") #等待页面标题 WebDriverWait(driver,timeout=5,poll_frequency=0.5).until(method=EC.title_contains(('搜索结果')),message="搜索结果为空") #等待元素加载完成 WebDriverWait(driver,timeout=5,poll_frequency=0.5).until(method=EC.presence_of_all_elements_located(('id','百度')),message="元素加载未完成")

4、屏幕截图(页面如果有弹窗会报错)

#保存成图片 driver.get_screenshot_as_file('img/screeshot.png') #返回图片二进制 driver.get_screenshot_as_png() #返回图片base64 driver.get_screenshot_as_base64()

解决方案:

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple/

pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple

#导库 from PIL import ImageGrab ImageGrab.grab().save("img/PIL_screeshot.png")

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询