小编Eti*_*nne的帖子

使用 br 从文本中查找 xpath

我有这个 html 代码

<div>
  <span>test</span>
  foo
  <br />
  bar
</div>
Run Code Online (Sandbox Code Playgroud)

我正在尝试直接在 div 中使用文本找到它(所以 foo bar)。

通常,我会去 //div[normalize-space(text()) = 'foobar'],但因为
它不起作用。我尝试添加空格或特殊字符,或修剪它们,但似乎没有任何效果。

从测试中我看到

//div/text() = foo bar
//div/text()[1] = foo
//div/text()[2] = bar
//div[text()[1] = foo] = the div
//div[text()[2] = bar] = nothing
Run Code Online (Sandbox Code Playgroud)

似乎 text() 在返回值而不是搜索值时仅返回索引 [2] 。

我用 java/selenium 和 firepath(一个用于测试 xpath 的 firebug 插件)测试了这段代码。

任何人都知道如何从文本中获取 div,如果可能,不使用 contains,因为它们不准确。

谢谢你。

xpath selenium-webdriver

5
推荐指数
1
解决办法
3429
查看次数

Java selenium 页面对象菜单

我正在使用页面对象模型。在我的网站上,大多数页面都有一个菜单,所以我想我应该创建一个 MenuPage 类,每个其他有菜单的页面都会扩展它。

但现在我想从菜单中重新组合我所有的 WebElement,以将它们与当前页面之一分开。

换句话说,如果一个元素直接在页面上,我会像这样访问它。

MyPage mypage = new MyPage(); /*MyPage extends MenuPage*/
mypage.myWebElement.click();
Run Code Online (Sandbox Code Playgroud)

但是如果 webelement 是菜单的一部分,而不是 MyPage 的一部分,我想从

MyPage mypage = new MyPage();  /*MyPage extends MenuPage*/
mypage.menu.myWebElement.click();
Run Code Online (Sandbox Code Playgroud)

我知道我可以创建一个类菜单并将其实例化到 MenuPage 中,但由于它只会在那里使用,我不希望它与类 MenuPage 分开。而且,菜单也有子菜单,所以我想用多级字段来表示它。并且为每个子菜单创建一个新类可以用这么少的时间制作很多类。

这样做的最佳方法是什么,或者您知道解决问题的其他方法吗?

java selenium pageobjects selenium-webdriver

3
推荐指数
1
解决办法
1744
查看次数

标签 统计

selenium-webdriver ×2

java ×1

pageobjects ×1

selenium ×1

xpath ×1