我有一个自动化项目使用Selenium,它将调用ChromeWebDriver并运行testcase
但Chromedriver不能在聚合物框架构建的网站上显示元素,
我们可以通过检查F12查看元素。但chromedriver找不到元素。
这里是网站的urlhttps://shop.polymer-project.org/我们不能使用ChomeDriver来查找元素内部节点“影子根”。此处代码:
System.setProperty("webdriver.chrome.driver", "chromedriver_win_2.23.exe");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("https://shop.polymer-project.org/");
Thread.sleep(5000);
System.out.println(driver.getTitle());
System.out.println(driver.getPageSource());
WebElement shopnowbtn = driver.findElement(By.xpath("//shop-button/a"));
shopnowbtn.click();
这里是错误
异常在线程"main"org.openqa.selenium.NoSuchElement异常:没有这样的元素:无法定位元素:{"方法":"xpath","选择器":"//*[@类='样式范围商店-家']/a"}(会话信息: chrome=52.0.2743.116)(驱动程序信息: chromeDrier=2.23.409699 (49b0fa931cda1caad0ae15b7d1b68004acd05129),平台=Windows NT 6.1.7601 SP1x86_64)(警告:服务器未提供任何stackTrace信息)命令持续时间或超时:10.04秒
一些我的信息: Chrome版本52.0.2743.116m, Selenium-server-独立版2.53, ChromeDriver版本2.23
我用过FirefoxDriver工作正常。
那么,有没有运行自动化脚本的chromeDrivePolymer网站?
非常感谢
无法找到元素,因为浏览器之间存在一些差异。
在这种情况下,您应该手动检查两个浏览器中的选择器。
如果您在chrome浏览器上进行检查,您将看到“style scope shop home”类丢失。
我建议使用基于href的选择器。下面是xpath和css选择器的一个变体。
//shop-button/a[contains(@href, 'list')]
或者
shop-button a[href*=list]
当您知道不同浏览器的页面可能不同时,请始终检查两个浏览器中的选择器。
因为我在这里是新手,所以不能使用注释,所以添加到@Lauda答案中,聚合物使用阴影DOM。但是火狐网页的最终页面来源和样式Chrome之间存在差异。有时,文档级别的CSS会覆盖阴影DOM元素的本地样式。在这两种浏览器中,甚至立即购物元素的外观也不同。
如前所述,您需要修改定位器以删除类值。也许添加id到你想要的元素。
任何提示都会很有帮助!
大家好,我正试图在网站中找到一个元素,但出于某种原因,它不允许我。该网页是Reddit的登录形式,我尝试输入用户名和密码,但当我列出所有输入时,它只出现在顶部搜索栏中。我想这是因为它就像在另一个“标签”一样,它会弹出到前面,但我不知道如何管理它。提前谢谢。
问题内容: 所以我想安装 https://www.npmjs.com/package/@progress/kendo-react- grid 该软件包存在于网站上,但是当我运行命令时 我收到404错误 想法? 到目前为止,我认为用户范围是什么 第二次尝试 问题答案: 我看着我的,这就是里面的东西 与该用于评论查看文档 我注释掉了所有4行,并且能够运行 无论出于何种原因,我都没有在https://w
我试图在某一元素条件下隐藏几个聚合物元素。我知道有几种可能性。在我的opinon中,最简单的方法是引入一个新的CSS类 并将其添加到聚合物元素的类列表中 但这对元素没有影响。元素仍然可见。对elment检查器的查看显示,添加了该类: 其中parent-elem是父元素的名称。 谁能解释一下为什么元素不会被隐藏? 谢谢。 问候你,梅森曼
我是新手,试图通过在flipkart网站上搜索来制作第一个自动化测试用例,然后搜索手机并单击特定的手机,然后添加到购物车,但它不起作用,得到这个错误硒.common.exceptions.ElementClickInterceptedException:消息:元素点击拦截:元素...在点 (728, 232) 处不可点击。并尝试通过查找css选择器/ xpath / id /名称,它们都没有工作,
我正在自动化一个枯燥的数据输入任务,所以我创建了一个程序,基本上是使用Selenium为我点击和键入。它跑得很好!除非它到达这个特定的“编辑详细信息...”元素,但是,无论我尝试什么方法,selenium都无法找到该元素。 我尝试使用一个CSS选择器来访问ID,但没有成功。我还尝试使用XPATH,并尝试通过给它一个带有按钮文本的'contains'语句来更加具体。最后,我使用selenium ID