[英]Selenium browser c# click
试图在表单的下拉列表中选择值。
当前的 HTML 看起来像
<div class="listing-editor__input--half d--ib va--t">
<div aria-haspopup="true" tabindex="-1" class="dropdown form__text--select d--b dropdown--expanded" aria-expanded="true">
<div class="dropdown__selector dropdown__selector--select-tag dropdown__selector--select-tag--large">
<p data-et-name="category" class="tc--lg">
Select Subcategory (optional)
</p>
</div>
<div>
<ul class="dropdown__menu">
<li class="dropdown__menu__item"><a class="dropdown__link">Belts</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Glasses</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Gloves & Mittens</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Hair Accessories</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Hats</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Hosiery & Socks</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Key & Card Holders</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Laptop Cases</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Phone Cases</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Scarves & Wraps</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Sunglasses</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Tablet Cases</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Umbrellas</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">Watches</a></li>
<li class="dropdown__menu__item"><a class="dropdown__link">None</a></li>
</ul>
</div>
</div>
<p class="form__error-message" style="display: none;">
</p>
</div>
我试图通过字符串“电话”来选择
试过
// select the drop down list
var education = driver.FindElementByCssSelector("#content > div > div > div:nth-child(2) > section:nth-child(4) > div > div.col-x24.col-l20 > div:nth-child(1) > div > div.dropdown__selector.dropdown__selector--select-tag.dropdown__selector--select-tag--large");
//create select element object
var selectElement = new SelectElement(education);
// select by text
selectElement.SelectByText("Phone");
输出
OpenQA.Selenium.Support.UI.UnexpectedTagNameException: '元素应该被选择但被 div'
编辑>
SelectElement
只能与 HTML选择标签一起使用。 在您提供的 HTML 中选择下拉列表的步骤:
using (IWebDriver driver = new ChromeDriver())
{
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IJavaScriptExecutor js = (IJavaScriptExecutor) driver;
driver.Navigate().GoToUrl("https://poshmark.com/create-listing");
driver.FindElement(By.Id("login_form_username_email")).SendKeys("username");
driver.FindElement(By.Id("login_form_password")).SendKeys("password");
driver.FindElement(By.TagName("button")).Click();
wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("input[data-vv-name='title']"))).SendKeys("Title controled by t3cho");
driver.FindElement(By.CssSelector("[data-vv-name='originalPrice']")).SendKeys("22");
var categoryCombobox = driver.FindElement(By.XPath("//span[@data-et-name='category']/ancestor::div[contains(@class,'isting-editor__input--half')][1]"));
js.ExecuteScript("arguments[0].scrollIntoView(false)", categoryCombobox);
categoryCombobox.Click();
var category1 = driver.FindElement(By.LinkText("Accessories"));
js.ExecuteScript("arguments[0].scrollIntoView(false)", category1);
category1.Click();
var category2 = driver.FindElement(By.LinkText("Glasses"));
js.ExecuteScript("arguments[0].scrollIntoView(false)", category2);
category2.Click();
}
下载用于ExpectedConditions
SeleniumExtras.WaitHelpers
NuGet 包。
尝试这个:
new SelectElement(driver.FindElement(By.Xpath("//ul[@class='dropdown__menu']"))).SelectByText("Phone Cases");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.