我正在尝试单击
<div class="cart__checkout cart__checkout--small">
<a class="button button--lg button--info button--checkout" title = "Checkout" href = "https://shop.adidas.ae/en/checkout/onepage/">
<span> Checkout </span>
<i class="icon-sprite icon-sprite-arrow-white-right-type-4"></i>
</a>
</div>
<button id="update_cart_action" class = "button btn-update" style = "display: none;" type = "submit" name = "update_cart_action" value = "update_qty" title = "Update Shopping Cart"></button>
如果你想看到原始网站,它 https://shop.adidas.ae/en/checkout/cart/(你必须在你的购物车中添加一些东西,看看我看到了什么)
我尝试了三种不同的方法:
第一种方法,我的目标是
:
var checkoutButton = driver.FindElement(By.ClassName("cart__checkout cart__checkout--small"));
(然后点击)
我得到了错误:
类型为“OpenQA”的未处理异常。WebDriver.dll中出现“selenium . InvalidSelectorException”其他信息:给定的选择器cart _ _ check out cart _ _ check out-small无效或未生成WebElement。出现以下错误:InvalidSelectorError:不允许复合类名
为了解决复合类名错误,我尝试了以下代码:
var checkoutButton = driver.FindElement(By.CssSelector("div[class*= 'cart__checkout cart__checkout--small']"));
没有任何反应,我假设它被点击了,但不是实际的链接被点击(第二个选项)。
我认为这可能是单击实际元素的有效方法,除了div实际上比链接大得多。我假设selenium点击了div的中心,但是正如您从下面的截图中看到的,div的中心没有链接。有没有办法抵消我的< code>Click()
函数?
或者,我试图以a
为目标:
var checkoutButton = driver.FindElement(By.CssSelector("a[class*='button button--lg button--info button--checkout']"));
这只是给出了一个错误,即它不在当前视图中,很可能是因为< code>a在< code>div下面
错误:
Web驱动程序中发生了类型为“OpenQA.硒.元素不可见异常”的未处理的异常.dll附加信息:元素当前不可见,因此可能无法与之交互
谢谢你的帮助。我认为我的第二个选择是最好的选择。有没有办法抵消一个< code>Click()?谢了。
您应该尝试使用<code>WebDriverWait</code>等待元素可见,并启用<code>预期条件单击。元素在如下交互之前可被选中:-
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement checkOut = wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("a.button--checkout[title ='Checkout']")));
checkOut.Click();
也许你可以用:
ILocatable hoverItem = (ILocatable)driver.FindElement(By.XPath("//*[@id='js-minicart']"));
IMouse mouse = ((IHasInputDevices)driver).Mouse;
mouse.MouseMove(hoverItem.Coordinates);
检查<代码>后
driver.FindElement(By.Xpath('//*[@id="js-minicart"]/li/div[2]/div[3]/div[4]/ul/li/a/span'));
您的 CSS 选择器有点偏离。请注意两个类之间的“.”。此外,您可以专门针对 a。试试这个:
var checkoutButton = driver.FindElement(By.CssSelector("div.cart__checkout.cart__checkout--small a"));
下面是我的代码。当我从excel中输入url时,大部分时间都显示org . open QA . selenium . elementnotvisibleexception:元素当前不可见错误。对于像www.travelocity.com这样的网站,它显示点击7 8链接后,但www.google.com显示错误从开始。 线程"main"org.openqa.selenium.ElementNotVi
问题内容: 我在FirefoxDriver中使用Selenium 2 Java API。当我填写表单时,根据表单输入,将复选框添加到页面。 我想使用Selenium模拟对这些复选框的单击。该元素在常规浏览器中可见且可用,但是selenium断言该元素不可见。 我可以强迫selenium忽略元素的不可见状态吗?如何强制Selenium与不可见元素进行交互? 问题答案: Selenium根据以下条件确
硒的新手!我正在尝试使用selenium在Craigslist上列出待售房屋。 我在从下拉选择框中选择选项时遇到问题。 我收到以下错误: 元素不可操作异常:消息:元素不可交互:元素当前不可见,可能无法操作 使用“选择”也会产生同样的错误: 该元素存在: 但这并不是棘手的: 元素不可交互异常: 消息: 元素不可交互 我注意到选择元素是隐藏的,选择由选择框上的下一个元素控制。 我可以通过激活元素并使用
问题内容: 这是我的代码,可单击该网站上的简单登录按钮 我收到以下错误: 线程“主”中的异常org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与命令持续时间或超时进行交互:2.05秒 问题答案: 在此页面上,您有两个具有给定xpath的按钮,第一个不可见,这就是为什么您收到ElementNotVisibleException的
下面是我在这个网站上点击一个简单的登录按钮的代码 我得到以下错误: 线程“main”org.openqa.selenium中出现异常。ElementNotVisibleException:元素当前不可见,因此可能无法与命令交互持续时间或超时:2.05秒
我的脚本代码中有以下一行,其中我从Selenium IDE获得的XPath工作正常: 自动化测试在此处停止,并显示以下错误: 如何解决此问题? 感谢任何帮助。