当前位置: 首页 > 知识库问答 >
问题:

Selenium无法识别popover上的对象

皇甫飞光
2023-03-14

大家好,有人能帮助我为什么我不能选择“从帐户删除”按钮。如果您查看屏幕截图,selenium成功地点击了显示弹出窗口的星形标志。然后我想让selenium点击从帐户删除按钮,但它不起作用。感谢任何帮助

这是我的代码:

public void clickSpecialPricingRemoveFromAccount(){
webDriver.findElement(By.xpath("//*[@id='singleProductTR']/td[6]/div/div[2]/div/div/div/div[2]/button[1])")).click();
}

我得到的错误消息是:

org.openqa.selenium.invalidselectorexception:给定的选择器//[@id='single producttr']/td[6]/div/div[2]/div/div/div/div[2]/button[1])无效或不会导致webelement。发生以下错误:invalidselectorerror:找不到xpath表达式的元素//[@id='single producttr']/td[6]/div/div[2]/div/div/div[2]/div/div/div[2]/button[1]),原因是以下错误:语法错误:表达式不是合法表达式。命令持续时间或超时:此文档的文档需要31毫秒错误,请访问:http://seleniumhq.org/exceptions/invalid_selector_exception.html构建信息:版本:“2.53.0”,修订版:“35AE25B1534AE328C771E0856C93E187490CA824”,时间:“2016-03-15 10:43:46”系统信息:主机:“wdhl843a4bd282a8.corp.intuit.net”,IP:“172.17.205.71”,OS.name:“Mac OS X”,OS.arch:“x86_64”,OS.version:“10.11.6”,java.version:“1.8.0_91”驱动程序信息:org.openqa.selenn ium.firefox.FirefoxDriver功能[{ApplicationCacheEnabled=True,rotatablE=false,HandlesAlerts=true,DatabaseEnabled=true,Version=46.0.1,Platform=MAC,NativeEvents=false,AcceptsLCerts=true,WebStorageEnabled=true,LocationContextenabled=true,Browsername=Firefox,TakessCreenshot=true,JavaScriptEnabled=true,CSSSelectorsEnabled=true}]会话ID:6EF87E2B-BEAE-424C-9FDF-A3728E4995C4***元素信息:{using=XPath,value=//*[@id='single ProductTr']/td[6]/div/div[2]/DIV/DIV/DIV/DIV[2]/按钮[1])}

共有1个答案

鲜于承基
2023-03-14

org.openqa.selenium.invalidselectorexception:给定的选择器//[@id='single producttr']/td[6]/div/div[2]/div/div/div/div/div/div[2]/button[1])无效或不会导致WebElement

您提供的XPath语法不正确,它应该是:-

//*[@id='singleProductTR']/td[6]/div/div[2]/div/div/div/div[2]/button[1]

您已经在)的末尾附加了这个XPath,而这个末尾不应该存在。

webDriver.findElement(By.xpath(".//button[text() = 'Remove from Account']").click();
 类似资料:
  • 我正在使用Selenium WebDriver从下拉列表中获取值。不幸的是,我无法获取它,因为我的代码无法识别xpath。 这是我的代码: 问题在于第1行(WebElement选择器)。在输出中,我得到如下结果: 线程“main”组织中出现异常。openqa。硒。InvalidSelectorException:无法计算xpath表达式“id('search”)/x:fieldset/x:tabl

  • 下面的代码应该做到以下几点:1。连接到www.brainly.ro并使用凭据2登录。打开用户窗口Lola1511 3。打开所有已回答的问题,查看是否已通过审核。如果未批准,则批准。 下面我发布了我的整个代码(到站点的链接和凭据都在那里)

  • 似乎我在代码中遇到了一些同步问题。在我的过程中,我点击了一个按钮,打开了一个新的窗口。我通过下面的代码切换到新窗口。 我甚至试过: 不幸的是,大多数时候的问题似乎是selenium没有切换到新窗口(调试时可以看到它)。 我很乐意得到你的帮助。

  • 问题内容: 我在Windows 2012服务器上使用PowerShell,我从System32删除了所有Java命令,重新安装了jdk,将JAVA_HOME和Path设置为指向新安装。而且我仍然收到以下错误: 问题答案: 我从System32删除了所有Java命令 这就是Windows无法找到java.exe的原因。默认的JRE安装将Java放入System32目录,而CMD和Powershell

  • 问题内容: 我试图将新的(2016) 无 头版Chromium与Selenium / ChromeDriver一起使用(过去,我将Firefox与xfvb一起使用,但这有望变得更好)。 我根据此处找到的说明从源代码中编译了一个无头版本的Chromium(我没有找到任何预构建的二进制文件),然后使用以下代码通过Selenium启动它: 相同的代码适用于标准铬(如果我删除该选件) 但是,我得到以下错误

  • 我对硒很陌生。 我尝试构建一个测试来验证网页元素(小图标)是否显示在页面上。 因此,在我的类的顶部,我通过xpath定义了Web元素。 Xpath我在应用右键单击元素并单击检查后从检查中复制。 @通过(xpath=“//*[@id=”referrals“]/tbody/tr[2]/td[2]/div/img[2]”)私有WebElement链和twoarrowsicon查找; 然后在同一个类中,我