c# - 无法定位元素方法 XPath 、选择器
问题描述
我不确定为什么它无法识别持有该值的控件。我也尝试了 Class ,但没有成功。任何人都可以让我知道应该做什么。
这是我的代码
string locator = string.Format("//*[@class='getlist']/div");
Random elenumber = new Random();
int num = elenumber.Next(1, 10);
IWebElement fav = driver.FindElement(By.XPath(locator + "[" + num + "]" + "/div[@class='col-xs-12 col-md-4 col-sm-4 left-hm-contactus-hm']/div/div[@class='col-md-6 fav_hm']/center/form/input[@name='add']"));
Console.WriteLine(fav);
fav.Click();
Thread.Sleep(1000);
这是我得到的错误
OpenQA.Selenium.NoSuchElementException: 'no such element: Unable to locate element: {"method":"xpath","selector":"//*[@class='getlist']/div[1]/div[@class='col-xs-12 col-md-4 col-sm-4 left-hm-contactus-hm']/div/div[@class='col-md-6 fav_hm']/center/form/input[@name='add']"}
解决方案
我能想到两种可能:
该元素位于 iframe 中,您需要首先在其中访问该 iframe
driver.SwitchTo().Frame(frame)
div[@class='col-md-6 fav_hm']
<-- 这是一个复合类。据我所知,webdriver 不处理复合类。我建议将其更改为div[contains(@class, 'col-md-6') and contains(@class, 'fav_hm')]
与所有其他复合类相同。
推荐阅读
- c - 如何在C中仅打印双精度的前2位
- javascript - 如何在 Postman(请求部分)中访问原始数据?
- qt - 在 Windows 7 上构建和运行 Qt 6 软件
- javascript - RTK Query 中的 Chain 2 查询
- javascript - 如何使用 3 个子数组在 Javascript 中检测井字游戏获胜者?
- reactjs - 链接路径未按预期工作:reactjs
- flutter - flutter) 调用类时,想从调用页面获取特定的字符串或函数
- type-hinting - mypy在简单的单行函数中找不到类型错误
- go - 当更多工作人员被显式调用时,gomaxprocs 被忽略
- react-native - 将背景设置为图像以保存到图库