一、定位动态元素
      在利用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)

posted on 2025-05-12 13:15  aili12  阅读(19)  评论(0)    收藏  举报