亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過 Selenium 和 C# 根據 HTML 單擊帶有公開文本的按鈕

如何通過 Selenium 和 C# 根據 HTML 單擊帶有公開文本的按鈕

C#
慕哥9229398 2021-11-07 19:34:26
 <div class="actionButton-container row">                        <input type="hidden" name="addComment" value="TES-2" id="addCommentTES-2"/>                          <div class="col-sm-12 col-xs-12">                            <!-- RESET BUTTON -->                            <!-- button type="submit" class="btn blue changeBtn" id="Add" type="submit">Add</button>                            <button type="button" class="btn white changeBtn" id="cancel">Cancel</button> -->                            <button class="btn blue changeBtn" id="public" onclick="addCommentsForUser()" type="button">Public</button>                              <button class="btn blue changeBtn" id="inner" onclick="addCommentsForUser()" type="button">Inner</button>                              <button type="button" class="btn white changeBtn" id="cancel">Cancel</button>                          </div>                      </div>上面是 HTML 代碼。我嘗試使用下面的代碼來獲取 selenium 中的按鈕并執行單擊。它說找不到元素。driver.FindElement(By.ClassName("actionButton-container")).FindElement(By.Id("public")).Click();或者driver.FindElement(By.Id("public")).Click();有誰知道這個問題的解決方案?
查看完整描述

3 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

  driver.FindElement(By.XPath("//*[@id='commentSFHD-12']")).SendKeys("TEST Function");

  System.Threading.Thread.Sleep(5000);

  IWebElement ibtn3 = driver.FindElement(By.Id("public"));

  IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;

  executor.ExecuteScript("arguments[0].click();", ibtn3);

通過使用上面的代碼,它現在可以正常工作


查看完整回答
反對 回復 2021-11-07
?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

您可以這樣使用,因為您沒有共享 URL,因此很難找到結論。但是試試這個:


WebDriverWait wait = new WebDriverWait(driver.driver, TimeSpan.FromSeconds(Time));

wait.Until(ExpectedConditions.ElementToBeClickable(element));

或者


WebDriverWait wait = new WebDriverWait(driver.driver, TimeSpan.FromSeconds(Time));

wait.Until(ExpectedConditions.visibilityOfElementLocated(element));


查看完整回答
反對 回復 2021-11-07
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

根據您共享的HTML,單擊帶有公共文本的按鈕,您需要引入WebDriverWait以使所需元素可點擊,您可以使用以下解決方案:

new WebDriverWait(driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//div[@class='actionButton-container row']//button[@class='btn blue changeBtn' and @id='public']"))).Click();


查看完整回答
反對 回復 2021-11-07
  • 3 回答
  • 0 關注
  • 241 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號