xpath如何取包含多个class属性
来自 https://www.cnblogs.com/bluestars/p/9194700.html
相邻元素定位,
前一位:
preceding-sibling::div[1]
后一位:
following-sibling::div[1]
前N位:
preceding-sibling::div[N]
后N位:
following-sibling::div[N]
XPath上下文基本有以下几种:
○ 当前节点(./):
如./sender表示选择当前节点下的sender节点集合(等同于下面所讲的"特定元素",如:sender)
○ 父节点(…/):
如…/sender表示选择当前节点的父节点下的sender节点集合
○ 根元素(/):
如/messages表示选择从文档根节点下的messages节点集合.
○ 根节点(/):
这里的是代表所有节点,但是根元素只有一个,所以这里表示根节点。/*的返回结果和/messages返回的结果一样都是messages节点。
○ 递归下降(//):
来自 https://www.cnblogs.com/Loofah/archive/2012/05/10/2494036.html
一些静态控件、可根据浏览器快速获取xpath
步骤:
1、F12
2、定位到待定位控件
3、右键html元素,菜单选择copy
4、下拉框选择 copy xpath
5、粘贴 即可获取xpath字符串。
来自 https://www.cnblogs.com/nemolmt/p/6894584.html
1.contains (): //div[contains(@id,‘in’)] ,表示选择id中包含有’in’的div节点
2.text():由于一个节点的文本值不属于属性,比如“baidu”,所以,用text()函数来匹配节点://a[text()=‘baidu’]
3.last():前面已介绍
4.starts-with(): //div[starts-with(@id,‘in’)] ,表示选择以’in’开头的id属性的div节点
5.not()函数,表示否定,//input[@name=‘identity’ and not(contains(@class,‘a’))] ,表示匹配出name为identity并且class的值中不包含a的input节点。
not()函数通常与返回值为true or false的函数组合起来用,比如contains(),starts-with()等,但有一种特别情况请注意一下:我们要匹配出input节点含有id属性的,写法如下://input[@id],如果我们要匹配出input节点不含用id属性的,则为://input[not(@id)]
打开新tab
new_ap_tab = 'window.open("http://192.168.1.4");'
driver.execute_script(new_ap_tab)
# print(driver.current_window_handle) # 输出当前窗口句柄
handles = driver.window_handles # 获取当前窗口句柄集合(列表类型)
driver.switch_to.window(handles[1]) # 切换tab
Selenium:利用select模块处理下拉框
文本框没有clear
s = driver.find_element_by_xpath('//input[@name="userPasswd"]')
s.send_keys(Keys.CONTROL, "a") # 相当于ctrl + a快捷键全选
s.send_keys(Keys.DELETE) # 快捷键删除
s.send_keys(password)
RF
关键字Run Keyword If 如何写多个条件语句、如何在一个条件下执行多个关键字
字典循环
FOR ${key} IN @{ap_info.keys()}
Log MANY
a
[
{a}[
a[{key}][zz]
列表循环
Set Suite Variable ${加密协议list} ${info}[加密协议]
FOR ${i} IN @{加密方式list}
${encrypt} Set Variable ${i}[0]
加密协议循环_2.4G ${encrypt}
END
Robot Framework For循环详解
变量条件自增1