Selenium怎么获取动态id

木偶然笨笨熊 2018-06-26 02:12:29
Selenium怎么获取动态id,type类型是dialog,正常页面元素是隐藏的,每次点击后,元素的id都是动态变化的,怎么获取每次弹出的页面提示,希望大神帮忙解决一下,困扰很长时间了,感激不尽
...全文
3160 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jack0612 2020-08-03
  • 打赏
  • 举报
回复
应该是数字会变字母不会变,用starts-with() 应该就可以了
铩胍崾牮镪 2020-07-06
  • 打赏
  • 举报
回复
通过绝对路径取拿
mylaoxiaoxiao 2020-04-27
  • 打赏
  • 举报
回复
不能换个方式去定位嘛。用xpath啊
qq_46809561 2020-04-16
  • 打赏
  • 举报
回复
是验证码吗?可以让开发设定一个万能验证码...上线后取消就可以了
Dear_y 2020-03-11
  • 打赏
  • 举报
回复
不要用id去定位,可以用其他属性定位元素如//div[contains(@class,'layui') and @type='dialog']等等,然后再通过定位到的元素返回id值
A…城会玩 2020-01-09
  • 打赏
  • 举报
回复
用 xpath啊很好用的
大大毛丶aj 2019-12-27
  • 打赏
  • 举报
回复
这种的动态的,建议你加一个WebdriverWait等待,它只要一出来,你就能抓到它里面的text

#xxxx: 标签里面的内容(最好手动复制,有的文本带有空格,有坑),双击就复制,注意这个.text的位置,应该跟在定位元素代码的后面
alert_title = WebDriverWait(web, 3, ).until(lambda x: web.find_element(By.CSS_SELECTOR, 'div.avator span').text)
if alert_title == "xxxx":print("登陆成功!")
else:print("登录失败!")
为36 2018-08-07
  • 打赏
  • 举报
回复
通过XPath定位,格式://*[@class="......"]
「已注销」 2018-07-25
  • 打赏
  • 举报
回复
动态ID的产生取决于前端使用的框架,既然是动态的,你就不能用ID定位元素了,建议换个方法
weixin_42780550 2018-07-24
  • 打赏
  • 举报
回复
通过XPath获取元素
chptcleo 2018-07-05
  • 打赏
  • 举报
回复
建议通过其他的方式去获取
qq_36508034 2018-07-03
  • 打赏
  • 举报
回复
我也是刚学selenium的小白,我有个很笨的处理方式,就是对动态id数字从1开始循环,每次+1,直到id存在并是我要的,再点击,代码如下(方法很蠢,多多指教)。

def isElementExist1(count, xpath,data):
if browser.find_element_by_xpath(xpath).text == data:
browser.find_element_by_xpath(xpath).click()
else:
addcount1(count, xpath,data)

def addcount1(count,xpath,data):
if count <= 20:
count = count + 1
xpath = '//*[@id="_easyui_combobox_i37_'+str(count)+'"]'
isElementExist1(count, xpath,data)


最后掉用下方法:
data = "xxx" #你要点击的text值
xpath = '//*[@id="_easyui_combobox_i37_'+str(count)+'"]' #xpath
isElementExist1(count, xpath,data)

5,177

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 质量管理/软件测试
功能测试压力测试安全性测试 个人社区 湖南省·长沙市
社区管理员
  • 软件测试
  • 虫无涯
  • 小博测试成长之路
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎大家加入到软件测试的社区,在这里,希望大家勇于发表自己的看法,欢迎大家分享自己在软件测试工作过程中遇到的问题以及工作经验分享。

1.想转行的小伙伴,遇到问题没有及时回复的,可以私聊小博进行反馈

2.大家对社区有好的建议,都可以在社区发帖进行反馈

推荐大家学习的软件测试入门笔记:软件测试入门学习笔记

试试用AI创作助手写篇文章吧