这里是新手。我正在对自动化测试进行第一次尝试,并且我正在测试的网站使用AngularJS来生成动态图形和条形图以及不断变化的数据和div ID。由于我不懂代码,我正在寻找使用Robot Framework和相关Xpaths的测试脚本。我的XPath知识大多来自W3学校茎的XPath教程(https://www.w3schools.com/xml/xpath_syntax.asp)Robot Framework和Xpath - 使用条件选择一个元素
这是目前我测试页面的一部分的基本骨架:我已经包含ExtendedSelenium2Library在图书馆
<html>
<body>
<div class="charts_and_graphs">
<div class="bar_chart">
<h1>Book Sales</h1>
<div class="key_area"></div>
<div class="bar_area">
<div class="bar">a1</div>
<div class="bar">a2</div>
<div class="bar">a3</div>
</div>
<h1>Pen Sales</h1>
<div class="key_area"></div>
<div class="bar_area">
<div class="bar">b1</div>
<div class="bar">b2</div>
<div class="bar">b3</div>
</div>
<h1>Bag Sales</h1>
<div class="key_area"></div>
<div class="bar_area">
<div class="bar">c1</div>
<div class="bar">c2</div>
<div class="bar">c3</div>
</div>
</div>
</div>
</body>
</html>
我的机器人脚本,到目前为止,我的测试情况是这样的:
Click on the first bar of the Book Sales bar chart
Click Element xpath=//child::div[@class="bar_chart" and ./h1/text()="Book Sales"]//div[@class="bar" and 1]
不用说,我的测试案例失败,出现以下错误:
ValueError: Element locator 'xpath=//child::div[@class="bar_chart" and ./h1/text()="Book Sales"]//div[@class="bar" and 1]' did not match any elements.
这里是我的Xpath的崩溃,我试图遵循的逻辑:
//子:: DIV [@类= “bar_chart” 和./h1/text()="Book销售“]应该选择任何一个div的子节点,其级别为bar_chart和谁有孩子h1节点包含字符串图书销售。
在这一选择,// DIV [@类= “栏” 的1]”旨在选择它的类是酒吧的第一 DIV节点。
我真的很感激任何提示或指示,可以帮助我实现自动点击图书销售图的第一栏而不依赖于id属性的目标(它们会在每次刷新页面时都会发生变化),那会即使条形图在页面周围移动也是如此(图表本身的结构不太可能改变,但是图表的排序可能会改变,或者整个charts_and_graphs div可能会移动到页面的顶部/底部......感谢前进!
我将文本内容a1-3,b1-b3,c1-3添加到示例中的'div.bar'元素以进行说明。你能告诉我们(根据这段文字内容)你想选择哪个'div.bar'元素? – wero
我正在尝试选择a1栏。 – Majin