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)