【问题标题】:Unable to locate element method XPath , Selector无法定位元素方法 XPath 、选择器
【发布时间】:2020-03-01 17:22:07
【问题描述】:

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

【问题讨论】:

标签: c# selenium selenium-webdriver xpath


【解决方案1】:

我能想到两种可能:

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

  2. div[@class='col-md-6 fav_hm'] div[contains(@class, 'col-md-6') and contains(@class, 'fav_hm')] 与所有其他复合类相同。

【讨论】:

    【解决方案2】:

    尝试使用此代码。

     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。分享您尝试使用的 web url 和 web 元素名称,也许我可以提供更好的 xpath,它将使用从 1 到 10 的随机数,并且每次都会给出随机元素。

    【讨论】:

      猜你喜欢
      • 2019-12-25
      • 1970-01-01
      • 2018-08-05
      • 2021-08-01
      • 2018-10-04
      • 1970-01-01
      • 2019-01-25
      • 2021-11-15
      • 1970-01-01
      相关资源
      最近更新 更多