我正在尝试为4个按钮具有相同代码的按钮创建Selenium测试(以下html重复4次):
<div class="item">
<div class="head">
<a class="title caps_style primary-color-text"href="https://www.www.www/link/link-link-complex-api-testing" target="_blank">Rake Athlete Complex API TESTING</a>
</div>
<div class="middle">
<div class="photo_square">
<a class="" href="https://www.www.www/link/link-link-complex-api-testing" target="_blank"><img src="/assets/2.png"></a>
</div>
<span class="stats">
<span class="title caps_style votes">salvations</span>
<span class="amt caps_style primary-color-text">
<i class="heart"></i><!-- react-text: 58 -->240
<!-- /react-text -->
</span>
</span>
<div class="stats">
<span class="title caps_style">Pickles Grazed</span>
<span class="amt caps_style primary-color-text">
<span class="fastack"><i class="fastack2x"></i>
<i class="fainverse"></i></span>
<i class="usb"></i><!-- react-text: 66 -->184 k<!-- /react-text -->
</span>
</div>
</div>
<div class="bottom">
<span class="snippit">latin fillin text</span>
</div>
<div class="inline-b">
<div>
<button class="vote-btn primary-color-background">
<img src="//www.www.www/assets/pic.png">
<span class="primary-color-background">Give</span>
</button>
</div>
</div>
这是我试图为第一个按钮(CssSelector和XPath)运行的C#代码:
driver.FindElement(By.CssSelector("button.vote-btn.primary-color-background")).Click();
并且:
driver.FindElement(By.XPath("//*[@id='Sections-react-component-0']/div/div[3]/div/div[1]/div[1]/div[4]/div/button").Click();
我在Selenium测试时收到以下错误消息:
Message: System.InvalidOperationException : unknown error: Element <button class="vote-btn primary-color-background">...</button> is not clickable at point (286, 1233).
Other element would receive the click: <p>...</p>
(Session info: chrome=61.0.3163.100)
(Driver info: chromedriver=2.32.498550
是否可以使用CssSelector选择特定选项?例如在代码中某处使用[2]或[4]?
答案 0 :(得分:0)
你应该尝试使用&#34; className&#34;选择器,
driver.FindElement(By.className("vote-btn")).Click();
或者您也可以尝试使用&#34; css选择器&#34;等,
driver.FindElement(By.CssSelector(".vote-btn.primary-color-background")).Click();
答案 1 :(得分:0)
如果您有多个具有相同按钮的部分 - 最好选择在定位器中向上&gt;向下并指定部分并找到其中的按钮。
按钮[n]不会告诉您正在寻找的确切按钮。如果添加另一个按钮会发生什么?也指定部分,不仅是按钮。
在css定位器中,根据位置编号识别元素是不可能的。
带有部分的页面示例将帮助我们构建有效的定位器。