我是测试自动化领域的新手,一直在自学。
在internet挑战dom页面上,我使用绝对xpath找到了蓝色按钮,这是我唯一能想到的找到它的方法。当页面刷新时,其他每个选择器似乎都会动态更改。
在这种情况下,有没有办法使此选择更加可靠?从谷歌搜索来看,这似乎是一种在网页上查找内容的脆弱方法。
https://the-internet.herokuapp.com/challenging_dom
''' #Test blue button on page, repeated 5 times and text displayed checked against options.
@pytest.mark.repeat(5)
def test_2():
elem1 = b.find_element(By.XPATH, 'html/body/div[2]/div/div/div/div/div[1]/a[1]')
a=(elem1.text)`enter code here`
elem1.click()
assert a in Names
print (a)'''
3条答案
按热度按时间pqwbnv8z1#
此元素的正确且唯一的xpath可以是
lmyy7pcs2#
看到蓝色按钮有这个html吗
很明显
id
正在生成dynamically
.href
没有value
.class
是button
及text
是bar
(但文本不断变化,所以我们也不考虑文本)因此,基于类,我们可以构造一个
xpath
:现在的问题是dom中有多个条目,对吗?
因此,在这种情况下,我们剩下两个选项:-
Xpath index
find_elements
使用xpath索引:第一个按钮:-
或
对于第二个按钮:-
等等
使用find_元素:
m3eecexj3#
由于三个按钮具有动态id值,所以我只是尝试检查id的静态部分,这对于所有按钮都是通用的,我们根据索引得到所需的按钮。
按钮的文本正在更改,但属性保持不变,因此您可以在下面进行检查