我正在为Web应用程序编写C#的Selenium脚本,我已经成功地制作了很多脚本,但刚刚遇到了一个按钮,我无法让Selenium点击。奇怪的是,这个按钮似乎与我点击过的其他按钮没有什么不同。按钮的 HTML 为:
<button class="contact-us-button btn btn-primary pull-right" ng-click="showCancelModal()" type="button">Cancel</button>
由于此按钮没有任何唯一的 ID 或类名,并且此表单上有多个按钮,因此我尝试使用以下代码通过 Xpath 进行选择:
driver.FindElement(By.XPath("(//*[@id='mainView']/div/form/div/div/div[4]/button[1]")).Click();
我通过检查按钮并从按钮元素复制Xpath从Google Chrome获得了XPath。我也尝试用不起作用的div
替换*
。XPath似乎没有错误,但我不断收到以下异常
OpenQA.Selenium.InvalidSelectorException : invalid selector: T無法 使用 XPath 表达式查找元素 (//div[@id='mainView']/div/form/div/div/div[4]/button[1]
任何人都可以提供帮助,因为我不知道为什么使用此 XPath 选择元素不起作用。
我想你的 xpath 中有错别字
driver.FindElement(By.XPath("(//*[@id='mainView']/div/form/div/div/div[4]/button[1]")).Click();
更改如下,让我知道
driver.FindElement(By.XPath("//*[@id='mainView']/div/form/div/div/div[4]/button[1]")).Click();