0


selenium 解决 id定位、class定位中,属性值带空格的解决办法

一、前置说明

selenium遇到下面这种元素:

<th id="demo id" class="value1 value2 value3 ">

1、虽然id一般不会有空格,但是前端错误的这种写法(如下图),会造成使用id定位不到元素,如:

find_element('id','demo id')

这种写法会直接报错。

2、class属性有空格,表示有多个属性,一般的解决办法就是使用其中一个属性,如:

find_element('class name','value1')

这种写法是可以定位到元素,但是往往测试人员在使用时,会将其错误的写成:

find_element('class name','value1 value2 value3')

二、解决方案

为了避免上述这种常见的错误,可以写一个方法封装一下,遇到这种错误时,将其转为xpath定位即可。

def_fix_find_elements_by_multiple_values_error(self, by, value)-> List[WebElement]:"""
        修复 `find_elements` 方法在使用 'id' 或 'class name' 定位时,
        value为复合值(比如value='value1 value2')可能引发的 InvalidArgumentException。
        """try:returnsuper().find_elements(by, value)except InvalidArgumentException as original_e:if by =='class name':
                by ='class'try:returnsuper().find_elements('xpath',f'//*[@{by}="{value}"]')except:raise original_e

三、Demo验证

欢迎技术交流:


本文转载自: https://blog.csdn.net/m0_46967801/article/details/134789624
版权归原作者 kind-tester 所有, 如有侵权,请联系我们删除。

“selenium 解决 id定位、class定位中,属性值带空格的解决办法”的评论:

还没有评论