拿慕课网进行举例,使用了多窗口切换的知识。
注意:定位时,要设置等待时间,等待元素加载出来。
```python
#点击链接以及轮播图图片点击
from selenium import webdriver
from time import sleep
driver=webdriver.Firefox()
driver.get("https://www.baidu.com/")
#在输入框输入内容
driver.find_element(By.ID, "kw").send_keys("慕课网")
#定位百度一下按钮
driver.find_element(By.ID, "su").click()
sleep(2)
#获取当前窗口句柄
h1=driver.current_window_handle
print("当前句柄:",h1)
print("当前页面的标题:",driver.title)
print("当前页面的url:",driver.current_url)
sleep(1)
#点击慕课网链接
driver.find_element(By.LINK_TEXT, "慕课网-程序员的梦工厂").click()
sleep(4)
#获取当前打开的窗口所有句柄
all_had=driver.window_handles
print("所有句炳:",all_had)
#使用for循环切换窗口,获取新打开到窗口句柄
for i in all_had:
if i!=h1:
#切换到指定句柄窗口
driver.switch_to.window(i)
h2=driver.current_window_handle
print("当前句柄2:",h2)
print("当前页面的标题:", driver.title)
print("当前页面的URL:", driver.current_url)
sleep(2)
#定位第一张轮播图并点击
driver.find_element(By.XPATH,"//*[@id='main']/div[2]/div[1]/div[10]/div/a[1]/div/img").click()
sleep(2)
driver.close()#关闭当前窗口
执行结果
多窗口切换步骤:
第一步:获取当前窗口句柄
h1=driver.current_window_handle
第二步:获取当前打开的窗口所有句柄
all_had=driver.window_handles
第三步:#切换到指定句柄窗口
driver.switch_to.window(h1)