第四章多窗口切换

import time
from selenium import webdriver

driver=webdriver.Chrome()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")

search_windows=driver.current_window_handle

driver.find_element_by_link_text("登录").click()
driver.find_element_by_link_text("立即注册").click()

all_handles=driver.window_handles

for handle in all_handles:
    if handle!=search_windows:
        driver.switch_to.window(handle)
        driver.find_element_by_name("userName").send_keys("username")
        driver.find_element_by_name("phone").send_keys("1234")
    print(driver.title)
    time.sleep(5)
driver.switch_to.window(search_windows)
print(123)

警告框处理,疏忽了sleep(2)害我想了好久

from time import sleep
from selenium import webdriver

driver=webdriver.Chrome()

driver.get("https://www.baidu.com")


link=driver.find_element_by_id('s-usersetting-top').click()
driver.find_element_by_link_text("搜索设置").click()
sleep(2)

driver.find_element_by_xpath("//a[@class='prefpanelgo setting-btn c-btn c-btn-primary']").click()

alert=driver.switch_to.alert

alert_text=alert.text
print(alert_text)

alert.accept()

下拉框,2021年看html代码貌似没有select类了,于是改写成这个了

from time import sleep
from selenium import webdriver
from selenium.webdriver.support.select import Select

driver=webdriver.Chrome()

driver.get("https://www.baidu.com")


link=driver.find_element_by_id('s-usersetting-top').click()
driver.find_element_by_link_text("搜索设置").click()
sleep(2)

# sel=driver.find_element_by_xpath("//select[@id='nr']")
#
# Select(sel).select_by_value('20')
# sleep(2)
#
# Select(sel).select_by_visible_text("每页50条")
# sleep(2)
#
# Select(sel).select_by_index(0)
# sleep(2)
driver.find_element_by_xpath("//*[@id='nr_3']").click()

下载文件

import os
from selenium import webdriver
options=webdriver.ChromeOptions()
prefs={'profile.default_content_settings.popups':0,
       'download.default_directory':os.getcwd()}
options.add_experimental_option('prefs',prefs)
driver=webdriver.Chrome(chrome_options=options)
driver.get("https://pypi.org/project/selenium/#files")
# driver.implicitly_wait(25)
driver.find_element_by_partial_link_text("selenium-3.141.0.tar.gz").click()

左右滑动解锁

from selenium.webdriver import ActionChains
from selenium.common.exceptions import UnexpectedAlertPresentException
from selenium import webdriver
from time import  sleep

driver=webdriver.Chrome()
driver.get("https://www.helloweba.net/demo/2017/unlock/")#网址变了

slider=driver.find_elements_by_class_name("slide-to-unlock-handle")[0]
action=ActionChains(driver)
action.click_and_hold(slider).perform()

for index in range(200):
       try:
              action.move_by_offset(20,0).perform()
              #move_by_offset中每一步的位置坐标都是针对上一步的,第一次是相对原点的,
              # 所以直接测量不作任何变化,第二次测量之后,要计算相对上一次坐标的位移距离,
       except UnexpectedAlertPresentException:
              break
       action.reset_actions()
       #返回原点的位置
       #否则就会出现20+40+60这样的情况

      # sleep(0.1)
success_text=driver.switch_to.alert.text
print(success_text)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值