Selenium必备知识

浏览器窗口最大化

maximize_window()函数可将模拟浏览器窗口最大化

from selenium import webdriver

w=webdriver.Chrome()
w.maximize_window()
w.get('https://www.baidu.com/')

Selenium必备知识_chrome

XPath法定位

Selenium必备知识_python_02

打开百度

定位输入框并输入selenium

from selenium import webdriver
from selenium.webdriver.common.by import By
w=webdriver.Chrome()
w.maximize_window()
w.get('https://www.baidu.com/')
# 定位输入框并输入selenium
w.find_element(By.XPATH,'//*[@id="kw"]').send_keys('selenium')

Selenium必备知识_输入框_03

CSS法定位

Selenium必备知识_属性值_04

定位到百度一下并点击

from selenium import webdriver
from selenium.webdriver.common.by import By

w=webdriver.Chrome()
w.maximize_window()
w.get('https://www.baidu.com/')
# 定位输入框并输入selenium
# .send_keys('selenium') 表示模拟键盘输入selenium
w.find_element(By.XPATH,'//*[@id="kw"]').send_keys('selenium')
# .click()表示模拟鼠标单击
w.find_element(By.CSS_SELECTOR,'#su').click()

切换浏览器同级页面

# 获取浏览器所有窗口的句柄
handles = w.window_handles
# 切换到第一个窗口
w.switch_to.window(handles[0])
# 切换到最后一个窗口
w.switch_to.window(handles[-1])
# 切换到第二个窗口
w.switch_to.window(handles[1])

切换子页面(网页中的网页)

Selenium必备知识_selenium_05

iframe 元素会创建包含另外一个文档的内联框架(即行内框架)。

Iframe标记又叫浮动帧标记,可以用它将一个HTML文档嵌入在一个HTML中显示。
它和Frame标记的最大区别是在网页中嵌入 的<Iframe></Iframe>所包含的内容与整个页面是一个整体,而<Frame>< /Frame>所包含的内容是一个独立的个体,是可以独立显示的。
另外,应用Iframe还可以在同一个页面中多次显示同一内容,而不必重复这段内 容的代码。

w.switch_to.frame('子页面的name属性值或者id属性值')
# 跳回最外层的页面
w.switch_to.default_content()

如果遇到没有id属性和name属性为空的情况,这时候就需要先定位iframe。

iframe=w.find_element(By.TAG_NAME,'iframe')
w.switch_to.frame(iframe)