C#selenium。请帮助我

时间:2017-08-24 12:59:03

标签: c# selenium xpath

首先,我不擅长英语。我希望你理解它。 我正在编程c#的selenium。但我不明白如何使用; / 例如,我想检查要从HTML中单击的XPath。 这是HTML Iwant。

<span class="option_text">10</span>

以下是原始HTML

<div class="report_options _options">
<a href="#" class="option" data-reportpolicy="R1">
    <i class="ico as_radio"></i>
        <span class="option_text">1</span>
</a>

<a href="#" class="option" data-reportpolicy="R2">
    <i class="ico as_radio"></i>
      <span class="option_text">2</span>
</a>
.
.(Omitted)
.
<a href="#" class="option" data-reportpolicy="R11">
    <i class="ico as_radio"></i>
        <span class="option_text">10</span>
</a>

我用过

WebDriver.FindElement(By.XPath("//span[contains(@class,'option_text') and contains(text(), '10')]")).Click();

但我不能。 有人给我建议。

  

PS。 VisualStudio错误日志。 OpenQA.Selenium.NoSuchElementException:&#39; no   这样的元素:无法定位元素:   {&#34;方法&#34;:&#34;的xpath&#34;&#34;选择器&#34;:&#34; // * [@ id中=&#39;报告-问题层&#39 ] / DIV [2] / DIV / DIV [3] / DIV / DIV [2] / DIV /一个[10]&#34;}   (会议信息:chrome = 60.0.3112.101)(驱动信息:   chromedriver = 2.31.488763   (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform = Windows NT   10.0.14393 x86_64)&#39;

2 个答案:

答案 0 :(得分:0)

使用以下XPATH: -

//a[@class='option' and @data-reportpolicy='R11']//span[@class='option_text']

OR

//*[@id="report-question-layer"]/div[2]/div/div[3]/div/div[2]/div/a[10]/span

OR

//div[@id='report-question-layer']//div[@class='report_options _options']//a[@data-reportpolicy='R11']/span

OR

//a[@data-reportpolicy='R11']/span

希望它会对你有所帮助:)。

答案 1 :(得分:0)

检入HTML,您可以尝试使用这种方式:

首先,尝试切换到框架: WebDriver.SwitchTo().Frame(driver.FindElement(By.Name("fb_xdm_frame_https")));

然后尝试以下XPath点击它: WebDriver.FindElement(By.XPath("//span[contains(text(), 'その他の禁止されている行為')]")).Click();