0

尝试自动化处理 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 类中的那个?

4

2 回答 2

0

似乎我对课程及其位置的关注不够。这就是我最终得到的结果:

driver.findElement(By.className("yj-auto-width-fake-textarea")).click();
driver.findElement(By.className("yj-tapf-textarea")).sendKeys(Text);
driver.findElement(By.id("yj-yam.ui.publisher.old.SubmitButton")).click();
于 2013-08-21T21:39:10.400 回答
0

如果 id 发生变化,那么可能是不使用 id 作为定位器的提示。

使用 CssSelectors 和 XPath 可以为您提供更稳定可靠的定位器

于 2013-08-22T10:26:50.307 回答