我正在尝试使用Selenium在网页上找到某些文字的位置。 我可以使用isTextPresent函数告诉我文本是否出现,但后来我想知道它到底在哪里。
更广泛的问题是我想点击这个文字。 问题是我似乎无法点击这个文本,我认为这是嵌入在页面上的一些控件。因此,它似乎没有被检测为链接或按钮或选项等。但是,我需要点击它来进行选择。
有什么想法吗?
答案 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).
该位置是一个整数值...因此也可以轻松比较。