如何针对多个“利”字;使用相同的类名
本文关键字:何针 | 更新日期: 2023-09-27 18:13:09
大家好,我的代码的功能是获取用户的鞋码偏好,然后根据他们的尺寸单击页面上的元素。我将通过从用户处获取数字输入并将其存储在一个值中,然后搜索与他们输入的大小匹配的元素来实现这一点。
这是我使用的网站的html代码:
<div class="form product__form product__form--size product__form--last js-select-size-mapper">
<ul class = "product-size">
<li class = "js-size-value ">
8
</li>
<li class = "js-size-value ">
9
</li>
<li class = "js-size-value ">
9.5
</li>
<li class = "js-size-value ">
10
</li>
<li class = "js-size-value ">
10.5
</li>
</ul>
</div>
我总是得到一些关于元素是如何不可点击的错误。奇怪的部分是有时IWebElement声明被验证(我的意思是没有错误声明它),有时有一个错误,当我试图点击。
如果你需要看一个更好的代码示例,请跳转到这里的网站。
例如,当我运行以下代码:
var element = driver.FindElement(By.XPath("//li[contains(@class,'js-size-value ')][contains(text(),size)]"));
element.Click();
*注意,我之前声明了一个名为"size"的变量,当它说"(text(),size)]"时,我指的就是这个变量。
我得到错误:
附加信息:Unexpected error。元素在点(825.1500244140625,45.69999694824219)不可点击。其他元素将收到点击:div class="header__wrapper">
我不知道如何处理这个问题,需要一些关于它的启示。我已经通过stackoverflow搜索了答案,并没有找到任何与我想要完成的确切相关的帖子,或者是模糊和难以理解的。
请谨慎回答,我是新的硒和c#一般,所以如果你能在你的答案中添加一点细节,而不是假设我知道你在说什么,那将是伟大的。您意外地将size设置为文本而不是变量。这意味着selenium将搜索带有文本'size'的列表项,该文本不存在,而不是例如size 9.5,
var element = driver.FindElement(By.XPath("//li[contains(@class,'js-size-value')][contains(text()," + size + ")]"));