最近在写自动化脚本中遇到一种场景,需要定位下拉框数据的某个值,要先自动生成这个值,然后在下拉框中找到这个值,如下场景:
我需要先用脚本自动生成一组手机号|用户名,然后再在这个下拉框中找到自动生成新添加的这组数据并选择它。
思路:
1.先定位一组固定值;
2.将其中的手机号|用户名参数化;
查资料,大部分下拉框都是固定内容,都是option,定位方法也比较好破解,但是我们这个是li标签,而且下拉列表值不是固定的,如果定位某个具体的下拉框的值,如定位图中红框的值,
用现成copy出来的xpath://*[@id="select2-XXXXXXXXXX-results"]/li[1];
这种定位出的xpath当然可以用,但是,没办法添加参数转化为自动化的,
自己重新写,li标签xpath定位://li[contains(.,'19916173859|111自动化测试')]
然后再把其中的19916173859|111自动化测试转化为变量或参数
代码如下:
self.driver.find_element_by_xpath("//li[contains(.,'19916173859|111自动化测试')]").click()
使用format传入变量或参数:
name = create_user_name()
phone = create_phone_number() self.driver.find_element_by_xpath("//li[contains(.,'{}')]".format(phone+"|"+name)).click()
还有一种字符串拼接的方法,大家试一下,可以参考下面的文章
搜相关问题这个文章出现次数特别高,也有一定的参考意义,自行参考。