一、定位动态元素
在利用selenium定位元素时,有时会遇到动态元素的情况(//*[@id="el-collapse-content-8252"]/div/div[1]/div[8]/div/ content后面的数字是随时变换的),可以用到以下方法定位。
starts-with(@id,'el-collapse-content'):表示查找id以el-collapse-content开始的元素
ends-with(@id,'el-collapse-content'):表示查找id以el-collapse-content结束的元素
contains (@id,'el-collapse-content'):表示查找id中包含el-collapse-content的元素
举例:
//*[@id="el-collapse-content-4580"]/div/div[1]/div[8]/div/div/div/input
可以写成:
//*[starts-with(@id,'el-collapse-content')]/div/div[1]/div[8]/div/div/div/input
或者
//*[contains(@id,'el-collapse-content')]/div/div[1]/div[8]/div/div/div/input
二、定位具有特殊唯一placeholder的input输入框
input输入框的placeholder如果是唯一的,可以使用XPath来直接定位该输入框。
例:<input type="text" autocomplete="off" placeholder="企业名称、代表人名称" class="el-input__inner">
定位方式:
//input[@placeholder="企业名称、代表人名称"]
三、定位到新页面
移动句柄为最新打开页面
windows = driver.window_handles
driver.switch_to.window(windows[-1])
time.sleep(12)
浙公网安备 33010602011771号