如何找到Selenium的文本位置?

时间:2010-08-25 00:47:02

标签: selenium

我正在尝试使用Selenium在网页上找到某些文字的位置。 我可以使用isTextPresent函数告诉我文本是否出现,但后来我想知道它到底在哪里。

更广泛的问题是我想点击这个文字。 问题是我似乎无法点击这个文本,我认为这是嵌入在页面上的一些控件。因此,它似乎没有被检测为链接或按钮或选项等。但是,我需要点击它来进行选择。

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

您的解决方案xpath=//*[text()='hello']将点击源代码中带有文本“hello”的第一个可单击元素。如果您想更具体,可以像x / p>一样向xpath添加更多案例

xpath=//*[@id='exampleId']//*[text()='hello']

现在这将点击带有文字'hello'的元素,该元素在id为'exampleId'的元素之后找到。

答案 1 :(得分:0)

知道了! 我不知道如何找到位置的答案, 但是,更重要的是点击该文本。

我可以在click方法中使用XPath定位器,例如: -

Click(xpath=//*[text()="hello"])

这将单击文本值为“hello”的元素。 在我的情况下,这是独一无二的,所以这足够具体。

答案 2 :(得分:0)

Xpath很有用,你应该回答上面的问题。但是,我意识到,有时Selenium不允许你点击某些东西,因为它认为文本被CSS隐藏

到目前为止,我没有任何解决方法,而不是单击按钮,我将完全关闭整个浏览器窗口。

但在我的情况下,它的CSS隐藏了CSS显示此类应用程序的实际版本号。所以我只截了它的截图:

File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    File destination = new File("path/to/outputfiles/versionNumber.png");
    FileUtils.copyFile(scrFile, destination);

答案 3 :(得分:0)

${x_axis}= Get Horizontal Position xpath=//*[text()="Log files"] Get Horizontal Position returns the position of 'Log files' wrt the left end(X-axis length).

该位置是一个整数值...因此也可以轻松比较。