文章目录
web自动化之selenium的特殊用法(二)
selenium-键盘操作,keys的的使用
(1)keys包的导入
(2)组合键使用
(4)常用组合键
(5)常用功能键
Python-Selenium:如何通过click在新的标签页打开链接?
selenium 带有空格的class name且不唯一的元素定位
web自动化之
selenium
的特殊用法(二)
selenium-键盘操作,keys的的使用
(1)keys包的导入
selenium有很完整的键盘操作,都在keys模块里
#导入keys包
from selenium.webdriver.common.keys import Keys
(2)组合键使用
KeysWord_Box = driver.find_element_by_xpath('//*[@id="kw"]')
#搜索框输入内容
KeysWord_Box.send_keys('test')
time.sleep(3)
#Keys.CONTROL代表ctrl键,'a'代表了A键,所以ctrl+A全选就实现了
KeysWord_Box.send_keys(Keys.CONTROL,'a')
#Keys.BACKSPACE代表退格键
KeysWord_Box.send_keys(Keys.BACKSPACE)
这段代码可以看到浏览器打开百度,输入内容,然后全选输入的内容,再退格删除。
(3)常用组合键
功能
|
语句
|
全选(Ctrl+A)
|
send_Keys(Keys.CONTROL,‘a’)
|
复制(Ctrl+C)
|
send_keys(Keys.CONTROL,‘c’)
|
剪切(Ctrl+X)
|
send_keys(Keys.CONTROL,‘x’)
|
粘贴(Ctrl+V)
|
send_keys(Keys.CONTROL,‘v’)
|
(4)常用功能键
功能
|
代码
|
回车
|
Keys.ENTER
|
删除
|
Keys.BACK_SPACE
|
空格
|
Keys.SPACE
|
制表
|
Keys.TAB
|
回退
|
Keys.ESCAPE
|
刷新
|
Keys.F5
|
Python-Selenium:如何通过click在新的标签页打开链接?
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get(url)
# 查找帖子列表(40条)
post_list = driver.find_elements(By.XPATH, '//ul[@id="waterfall"]/li/h3/a[1]')
# 存储原始窗口的 ID
original_window = driver.current_window_handle
for i in range(0, 40):
# 点击进入帖子
print(f'第{i + 1}个帖子')
# 获取帖子链接
href = post_list[i].get_attribute('href')
# 在新的标签页打开链接
driver.execute_script(f'window.open("{href}", "_blank");')
# 切换到新的标签页
driver.switch_to.window(driver.window_handles[-1])
# 单独处理
do sth...
# 关闭当前标签页
driver.close()
# 切回到之前的标签页
driver.switch_to.window(original_window)
driver.quit()
selenium 带有空格的class name且不唯一的元素定位
有些class属性中间有空格,如果直接复制过来定位是会报错的InvalidSelectorException: Message:
The given selector u-label f-dn is either invalid or does not result in a WebElement. The following error occurred:
InvalidSelectorError: Compound class names not permitted
这个报错意思是说定位语法错了。
class属性中间的空格并不是空字符串,那是间隔符号,表示的是一个元素有多个class的属性名称
直接包含空格的CSS属性定位大法
Element=driver.find_element_by_css_selector("[class='col3 fcweak ft12 tal']")
Selenium一直都是Python开源自动化浏览器工具的王者,但这两年微软开源的PlayWright异军突起,后来者居上,隐隐然有撼动Selenium江湖地位之势,本次我们来对比PlayWright与Selenium之间的差异,看看曾经的玫瑰花Selenium是否会变成蚊子血。
“世界上有那么多城市,城市里有那么多的酒馆,可她,却偏偏走进了我的.....”,这是电影《卡萨布拉卡》中的一句著名独白,投射到现实生活中,与之类似的情况不胜枚举,这世界上有那么多的系统,系统中有那么多的浏览器,在只有一台测试机的前提下,难道我们只能排队一个一个地做兼容性测试吗?有没有效率更高的方法呢?为此我们提出一个更高效的解决方案:使用Docker+Selenium Grid。