selenium
本文使用python版本:3.7.9
Chrom版本:105.0.5195.127
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
url_csdn_home = 'https://www.csdn.net/' # 要打开的网址
url_csdn_personal = 'https://blog.csdn.net/weixin_44940593?type=blog'
driver = webdriver.Chrome() # 打开Chrome浏览器
# driver.set_window_size(1200, 1000) # 设置浏览器大小
driver.get(url_csdn_home) # 自动打开浏览器并访问url,csdn主页
driver.maximize_window() # 浏览器全屏显示
# 浏览器的前进和后退
driver.get(url_csdn_personal) # 自动访问csdn个人主页
sleep(2)
driver.back() # 浏览器后退到csdn主页
sleep(2)
driver.forward() # 浏览器前进到个人主页
# 在新的浏览器页面打开
js = "window.open('https://blog.csdn.net/weixin_44940593?type=blog')"
driver.execute_script(js) # 在新的页面打开
driver.refresh() # 刷新页面
windows = driver.window_handles # 获取打开多个窗口的句柄
driver.switch_to.window(windows[-1]) # 切换到当前最新的窗口
sleep(2)
text_label = driver.find_element('id', 'toolbar-search-input') # 通过id获取定位搜索输入框
text_label.send_keys('python') # 在搜索框中输入python
sleep(2)
text_label.clear() # 清除搜索框中的内容
print(text_label.is_enabled())
print(text_label.get_attribute('placeholder'))
button = driver.find_element('xpath', '//*[@id="toolbar-search-button"]/span') # 定位搜索按钮
print(button.size) # 输出按钮大小
print(button.text) # 输出按钮上的文本
driver.close() # 关闭浏览器
# 不自动关闭浏览器
option = webdriver.ChromeOptions()
option.add_experimental_option("detach", True)
# 将option作为参数添加到Chrome中
driver = webdriver.Chrome(chrome_options=option)
# driver.set_window_size(1200, 1000) # 设置浏览器大小
driver.get(url_csdn_personal) # 自动打开浏览器并访问url,csdn主页
text_label = driver.find_element('id', 'toolbar-search-input')
driver.maximize_window() # 浏览器全屏显示
# 鼠标控制
text_label.send_keys('python')
button = driver.find_element('xpath', '//*[@id="toolbar-search-button"]/span')
# 模拟完成单机鼠标左键的操作,一般点击进入子页面等会用到,左键不需要用到ActionChains
button.click() # 单机左键(最常用)
# print(driver.window_handles)
# driver.switch_to.window(windows[-1])
# print(driver.current_window_handle)
# for wd in driver.window_handles:
# try:
# driver.switch_to.window(wd)
# c_button = driver.find_element('xpath', '//*[@id="search"]')
# break
# except Exception:
# print('..........')
#
# print(c_button.text, '000000000')
# ActionChains(driver).context_click(button).perform() # 单机右键。说明:perform(),用于执行所有ActionChains中储存的动作
# ActionChains(driver).double_click(button).perform() # 模拟鼠标双击操作
# 定位要拖动的元素
# source = driver.find_element('xpath', 'xxx')
# # 定位目标元素
# target = driver.find_element('xpath', 'xxx')
# # 执行拖动动作
# ActionChains(driver).drag_and_drop(source, target).perform()
driver.switch_to.window(windows[0]) # 切换到csdn主页