python - XPATH,从 Flex 容器中选择特定的有效值
问题描述
正如标题暗示的那样,我目前正面临一些试图解决这个问题的问题,问题是我有一个水平弹性容器,它显示Qtrs/Years以便为包轮换分配一个有效的容器,如您将在底部片段有 3 种类型的“状态/类别”我必须考虑,因为某些季度/年份可以设置为“无效”,这意味着我不应该将它们作为选择本身考虑,让我实际上不得不首先搜索有效的季度(class="quarter valid和class="quarter valid selected,后一个是我目前选择的那个 duh')
然后在实际只获得有效的那些之后,我需要能够创建一个 XPATH,它允许我浏览这些选项,并能够使用索引或最好通过文本选择它们(例如: QuarterNumber = '3Q' 和 year = " 2021")
基本上该部分的 html/dom 是这样的:
<div class="quartersContainer"</div>
<div class="quarter">
<div class="quarterNumber">1Q</div>
<div class="year">2021</div>
<div class="releasedIndicator"></div>
<div class="quarterbar-editing-mode"></div>
</div>
<div class="quarter">
<div class="quarterNumber">2Q</div>
<div class="year">2021</div>
<div class="releasedIndicator"></div>
<div class="quarterbar-editing-mode"></div>
</div>
<div class="quarter valid selected">
<div class="quarterNumber">3Q</div>
<div class="year">2021</div>
<div class="releasedIndicator"></div>
<div class="quarterbar-editing-mode"></div>
</div>
<div class="quarter valid">
<div class="quarterNumber">4Q</div>
<div class="year">2021</div>
<div class="releasedIndicator"></div>
<div class="quarterbar-editing-mode"></div>
</div>
<div class="quarter">
<div class="quarterNumber">1Q</div>
<div class="year">2022</div>
<div class="releasedIndicator"></div>
<div class="quarterbar-editing-mode"></div>
</div>
到目前为止我所拥有的只是这个......(我对此真的很陌生:()
//div[包含(@class,'季度有效') and .//@class='quarterNumber' and .//@class='year']
这样做的全部意义在于实际生成一个 XPATH,该 XPATH 可以在未来或通过 Behave Feature 文件进行操作,因此测试人员只需将文本从 2Q - 2021 实际更改为 3Q - 2023,它就能够去寻找它。
任何建议或指导将不胜感激:')
解决方案
就像@DMart 建议的那样,做这样的事情
def build_xpath(year ,quarterNumber):
return "//div[contains(@class,'quarter valid') and .//@class='" + year = "' and .//@class='" + quarterNumber + "']"
然后由您决定如何以及使用什么值调用 build_xpath()
推荐阅读
- java - 为什么servlet不更新参数?
- javascript - 如何向下滚动到 Scrollview 中包含的列表的特定索引?(Nativescript-vue)
- android - 在用户从网页转到应用程序后跟踪他们
- python - Django:将 DateTimeField 默认值定义为 None 或空白字段
- c# - 如何在我自己的被 ConfuserEx 混淆的类中使用 GetMethod?
- node.js - 使用许可证进行重复数据删除的纱线列表
- javascript - JQuery - 单击时添加和删除类
- c - 函数调用之间局部静态变量的值变化
- java - AlarmReceiver 保持清醒(简要)
- aws-lambda - 哪个 FaaS 为每个函数执行提供更高的 /tmp 存储空间?