2010-08-25 45 views
1

我试图找到一些使用Selenium的网页上的文本的位置。 我可以使用isTextPresent函数来告诉我文本是否出现,但是我想知道它的实际位置。如何使用Selenium查找文本位置?

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

有什么想法?

回答

0

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

我可以只使用XPath定位器在点击的方法,如: -

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

这将单击具有的“你好”的文本值的元素。 在我的情况下,这是独一无二的,所以这是非常具体的。

+1

关闭该问题然后 – 2010-08-26 07:25:04

+0

_______________删除评论并将其发布为答案 – zaplec 2011-08-05 09:13:32

3

您的解决方案xpath=//*[text()='hello']会点击第一个可点击的元素在源代码中的文字“你好”。如果你想更具体的,你可以添加更多的案件中的XPath这样

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

现在,这会点击元素与文本“你好”这后发现id为一些元素“exampleId”。

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); 
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).

的位置是一个整数值...所以也可以很容易地进行比较。