我想使用查找元素在网页中找到一个按钮,该页面可以包含以下按钮ID之一。
driver.findElements(By.xpath("//*[contains(@id,'topBtn')]"))
driver.findElements(By.xpath("//*[contains(@id,'WSMplasticTop')]"))
driver.findElements(By.xpath("//*[contains(@id,'bottomApplyBtn')]"))
当我使用Firefox驱动程序时,上面的代码正常运行,当我在Chrome驱动程序中运行时收到以下错误。
org.openqa.selenium.InvalidSelectorException: invalid selector: Unable to locate an element with the xpath expression //*[contains(@id='bottomApplyBtn')] because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//*[contains(@id='bottomApplyBtn')]' is not a valid XPath expression.
只是想知道我是否犯了任何错误
答案 0 :(得分:2)
尝试使用
'//*[contains(@id,'bottomApplyBtn')]'
而不是
'//*[contains(@id='bottomApplyBtn')]'
答案 1 :(得分:1)
当您在contains
表达式中使用XPath
方法时,您基本上使用内置method
来查找元素。
此方法需要2个参数。
基本上你必须用2个参数调用方法,并且2个参数应该comma
分开。
所以//*[contains(@id='bottomApplyBtn')]
错了,您应该删除此=
符号。
//*[contains(@id, 'bottomApplyBtn')]
|_______|____________________ Parameter 1
|__________________________________Parameter 2
希望它有所帮助!