首先,我不擅长英语。我希望你理解它。 我正在编程c#的selenium。但我不明白如何使用; / 例如,我想检查要从HTML中单击的XPath。 这是HTML Iwant。
<span class="option_text">10</span>
<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;
答案 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();