【发布时间】:2019-02-28 18:32:18
【问题描述】:
我需要一些帮助...我在使用 ELSE 语句时遇到问题,代码执行 IF 括号中的任何内容,但从未到达 ELSE 括号。它在 Chrome 上没有问题,但在 IE 上每次都失败。这是我的代码:
IWait<IWebDriver> wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(3.00));
IList<IWebElement> boxList = _driver.FindElements(By.CssSelector("ListBox option"));
bool textExists = false;
foreach (var option in boxList)
{
if (option.Text.Equals("TEST"))
{
textExists = true;
break;
}
}
if (!textExists)
{
_driver.FindElement(By.Id("AddButton")).Click();
var newRecordInfo = table.CreateSet<FeatureInfo>();
foreach (var recordData in newRecordInfo)
{
_driver.FindElement(By.Id("DescTextBox")).SendKeys(recordData._discription);
_driver.FindElement(By.Id("PaTextBox")).SendKeys(recordData._score);
new SelectElement(_driver.FindElement(By.Id("DropDown"))).SelectByValue("1");
_driver.FindElement(By.Id("SaveButton")).Click();
}
}
else
{
SelectElement Select = new SelectElement(_driver.FindElement(By.Id("ListBox")));
Select.SelectByText("TEST");
_driver.FindElement(By.Id("DeleteButton")).Click();
IAlert alert = _driver.SwitchTo().Alert();
alert.Accept();
//IJavaScriptExecutor js = (IJavaScriptExecutor)_driver;
//js.ExecuteScript("window.confirm = function(msg) { return true; }");
Thread.Sleep(1000);
}
这是 HTML:
IE
<div class="section-container">
<div class="section">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="width:52%" valign="top">
<h5 class="section-label">Active Values</h5>
<div class="section">
<select size="10" name="DescTextBox" id="DescTextBox" onclick="ListBox_Click()" style="width:98%;display:block;margin-bottom:10px">
<option value="14" UseCount="0" PassingScore="50" FirearmType="1">123ABC</option>
<option value="10" UseCount="0" PassingScore="170" FirearmType="2">BRTP</option>
<option value="9" UseCount="0" PassingScore="0" FirearmType="1">CORE TRAINING ELEMENTS</option>
<option value="12" UseCount="0" PassingScore="0" FirearmType="1">FAM (T&E PISTOL)</option>
<option value="5" UseCount="559" PassingScore="0" FirearmType="2">FAM ONLY (RIFLE)</option>
<option value="1" UseCount="31" PassingScore="225" FirearmType="1">FLETC PPC (NON-CITP)</option>
<option value="2" UseCount="4001" PassingScore="225" FirearmType="1">HHS-OIG PQC</option>
<option value="3" UseCount="603" PassingScore="240" FirearmType="2">HHS-OIG RQC</option>
<option value="6" UseCount="5" PassingScore="0" FirearmType="1">OTHER FEDERAL AGENCIES-PISTOL</option>
<option value="7" UseCount="2" PassingScore="0" FirearmType="2">OTHER FEDERAL AGENCIES-RIFLE</option>
<option value="11" UseCount="0" PassingScore="0" FirearmType="2">RCTP</option>
<option value="16" UseCount="0" PassingScore="50" FirearmType="1">TEST</option>
<option value="15" UseCount="0" PassingScore="50" FirearmType="1">TEXT_DELETE</option>
</select>
首页
<div class="section-container">
<div class="section">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="width:52%" valign="top">
<h5 class="section-label">Active Values</h5>
<div class="section">
<select size="10" name="DescTextBox" id="DescTextBox" onclick="ListBox_Click()" style="width:98%;display:block;margin-bottom:10px">
<option value="14" UseCount="0" PassingScore="50" FirearmType="1">123ABC</option>
<option value="10" UseCount="0" PassingScore="170" FirearmType="2">TRAINING</option>
<option value="9" UseCount="0" PassingScore="0" FirearmType="1">TRAINING TWO</option>
<option value="12" UseCount="0" PassingScore="0" FirearmType="1">TRAINING THREE</option>
<option value="5" UseCount="559" PassingScore="0" FirearmType="2">TRAINING FOUR</option>
<option value="1" UseCount="31" PassingScore="225" FirearmType="1">TRAINING FIVE</option>
<option value="16" UseCount="0" PassingScore="50" FirearmType="1">TEST</option>
<option value="15" UseCount="0" PassingScore="50" FirearmType="1">TEXT_DELETE</option>
更新帖子以添加适用于 IE 和 Chrome 的 HTML
【问题讨论】:
-
option.Text在您预期的时间内等于多少? -
也许 option.Text.Equals 需要不区分大小写
-
Use your debugger 看看为什么
option.Text.Equals("TEST")总是false。 -
很可能列表总是空的,检查
CssSelector("ListBox option")是否正确。我不知道 Selenium,但我希望CssSelector("#ListBox option")的CssSelector("select option") -
看看 IE 中的 HTML... 和 Chrome 中的完全一样吗?我认为他们的某些方面有所不同......
标签: c# selenium if-statement case