簡體   English   中英

即使存在C#硒,也無法在頁面上找到此元素

[英]Can't find this element on page even though it is exist C# selenium

我嘗試尋找此元素的時間最長,但無法弄清楚。 我的目標也是使用setattribute將值設置為數字,但是我找不到該元素。

<input type="tel" id="cvNumber" tabindex="1" data-shortname="cvv" class="cc-input ncss-input pt2-sm pr4-sm pb2-sm pl4-sm u-align-center" "cvv"="" autocomplete="off" autocorrect="off" value="" maxlength="4">

這是我用來嘗試查找元素的一些代碼

driver.FindElement(By.XPath("//input[@class='cc-input ncss-input pt2-sm pr4-sm pb2-sm pl4-sm u-align-center');
driver.FindElement(By.Id("cvNumber");
driver.FindElement(By.XPath("//input[@id='cvNumber'");
driver.FindElement(By.className("cc-input ncss-input pt2-sm pr4-sm pb2-sm pl4-sm u-align-center");
driver.FindElement(By.XPath("//input[@type='tel'");

提前致謝

嘗試使用此代碼:

driver.FindElement(By.XPath("//input[@id='cvNumber'][@type='tel']");

我認為元素選擇器沒有任何問題。 您可能沒有足夠長時間等待元素

 var wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(10));
 var myElement = wait.Until(x => x.FindElement(By.Id("cvNumber")));
 if(myElement.Displayed) {
   //do stuff
 }

或者該元素可能在框架內,因此您需要在執行上述代碼之前切換到框架。

driver.SwitchTo().Frame(driver.FindElement(By.id("frameId")));

根據您共享的HTML,您可以使用以下定位策略

Xpath

.//*[@id='cvNumber']

CSS選擇器

#cvNumber

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM