繁体   English   中英

无法定位元素方法 XPath,选择器

[英]Unable to locate element method XPath , Selector

我不确定为什么它无法识别持有该值的控件。 我也尝试了 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']"}

我能想到两种可能:

  1. 该元素位于 iframe 中,您需要首先使用 driver.SwitchTo driver.SwitchTo().Frame(frame)访问该 iframe

  2. div[@class='col-md-6 fav_hm'] <-- 这是一个复合 class。 据我所知,webdriver 不处理复合类。 我建议将其更改为div[contains(@class, 'col-md-6') and contains(@class, 'fav_hm')]与所有其他复合类相同。

尝试使用此代码。

 String myXpath = "//*[@class='getlist']/div[" + 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']";
    IWebElement fav = driver.findElement(By.xpath(myXpath));

这也是非常大和坏的xpath。 share the web url and web element name which you are trying to use maybe i can give better xpath which will use random numbers from 1 to 10 and each time will gave random element.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM