我正在自动化其中一个商业应用程序,当我尝试使用CSS,Xpath,ID识别元素时,该元素被识别并在Firebug中仅显示为一个匹配节点,但当我将该元素用于测试用例时automation.I看到以下错误
WebDriver.dll中出现“OpenQA.Selenium.NoSuchElementException”类型的异常,但未在用户代码中处理
请找到以下应用程序的HTML代码
<div id="QueryOption1" class="SelectedDiv" xmlns:local="#local-functions" xmlns:msxsl="urn:schemas-microsoft-com:xslt" name="QueryOptions">
<span>
<div>
<div class="leftSide">Subscriber ID: </div>
<input id="Subscriber_ID" class="floatLeft" type="text" name="InsuranceNum" size="15"/>
</div>
以下是我尝试的选项
By.id( “Subscriber_First_Name”)
By.CssSelector(“#QueryOption1&gt; div&gt; #Subscriber_Last_Name”)
By.Xpath( “//输入[@ ID = 'Subscriber_First_Name']”)
By.CssSelector( “输入[ID = Subscriber_First_Name] [式=文本]”)
他们都没有把我的价值传递给文本框。请帮助
答案 0 :(得分:0)
为什么你在上面的HTML&#34; id&#34;中使用id作为: - Subscriber_First_Name是: -
By.id("QueryOption1") // for first div
By.id("Subscriber_ID") //for input tag
By.xpath("//input[@id='Subscriber_ID']")
或者您也可以使用名称定位器
By.name("QueryOptions")
By.name("InsuranceNum")
OR可以使用JavascriptExecutor
设置值JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("$('#Subscriber_ID').attr('value','user')");
答案 1 :(得分:0)
您可以使用IJavaScriptExecuter
获取它 IJavaScriptExecutor jsExc = browser as IJavaScriptExecutor;
string textValue = jsExc.ExecuteScript("return document.getElementById('Subscriber_ID').value;").ToString();