【发布时间】:2013-07-24 20:10:31
【问题描述】:
尝试自动化处理 Yammer 的某些测试。我想要做的是使用 selenium 发布一些东西,但是当我点击文本框时,它会改变它的 id。此外,每次页面重新加载或发布帖子时,该文本框都会更改其 ID。
所以我接下来要做的是通过告诉 selenium 查找来使用通配符
//input[starts-with(id, 'yamjs')]
但是,我很快发现 yamjs 用于更新正文以及“+ 添加人员以通知”文本框。
两者之间的区别似乎是类。我们感兴趣的是class="yj-tapf-textarea",而添加人员通知文本框有class="yj-callout-bar-entry-field"
如何让 selenium 在 yj-tapf-textarea 类中找到 id 以 yamjs 开头的输入字段,而不是 yj-callout-bar-entry-field 类中的输入字段?
【问题讨论】:
-
无论输入的 ids/class 名称如何,页面(或表单)的结构是否始终保持不变?
-
没有。看起来 yj-callout-bar-entry-field 只有在您单击 yj-tapf-textarea 后才会出现。
-
您是否尝试过将
class="yj-tapf-textarea"中的内容存储在变量中并在该变量中搜索您想要的输入? -
没有。我该怎么做呢?
-
在 python 中:
myclass = browser.find_element_by_class('yj-tapf-textarea')myclass.find('input')这将返回一个列表,然后您可以遍历该列表直到找到您想要的列表(作为测试进行迭代,当您知道哪个时删除迭代您需要的输入)。希望我说得通。
标签: javascript selenium yammer