我需要使用 selenium 來點擊按鈕,但我遇到了一些問題我嘗試了這段代碼,但顯示錯誤“Selenium.InvalidSelectorException: 'invalid selector”IList link = driver.FindElements(By.ClassName("button postfix")); foreach (IWebElement elem in link) { if (elem.GetAttribute("ng-click").Equals("quickSearch.search()")) elem.Click(); }html頁面代碼<a href="javascript: void(0);" class="button postfix" ng-click="quickSearch.search()" analytics-on="click" analytics-event="InventoryManagementSearchKeyword" sc-omniture-props="InventoryManagementAllSS"><i class="fi-magnifying-glass"></i></a>我嘗試使用 id 但按鈕沒有 Id,所以我不知道如何使用它
2 回答

拉丁的傳說
TA貢獻1789條經(jīng)驗 獲得超8個贊
由于該元素是一個Angular元素,因此要調(diào)用click()
所需的元素,您必須為ElementToBeClickable引入WebDriverWait并且您可以使用以下任一定位器策略:
CssSelector
:new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("a.button.postfix[ng-click^='quickSearch'][analytics-event='InventoryManagementSearchKeyword']"))).Click();
XPath
:new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//a[@class='button postfix' and starts-with(@ng-click, 'quickSearch')][@analytics-event='InventoryManagementSearchKeyword']"))).Click();

陪伴而非守候
TA貢獻1757條經(jīng)驗 獲得超8個贊
你可以使用 Xpath。
driver.FindElement(By.XPath("//a[@class='button postfix' and @ng-click='quickSearch.search()']")).Click();
- 2 回答
- 0 關(guān)注
- 169 瀏覽
添加回答
舉報
0/150
提交
取消