我想点击div[@id='main_filter'],然后从下拉菜单中选择一个li元素。
我正在创建一个用于SelectFromDropDown的泛型方法。
<div id="main_filter" class="drop-select-wrap">
<span data-title="Active Clinic Patients" data-value="101" class="optionValue ov-gradient">Active Clinic Patients ▼</span>
<ul class="dropSelect" id="parentFilter" style="display: none; width: 175px;">
<li id="filterTypes" data-value="102" onclick="tier1FilterChanged(this);" data-rel="My Active Patients">
<span data-title="My Active Patients">My Active Patients</span>
</li>
<li id="filterTypes" data-value="101" onclick="tier1FilterChanged(this);" data-rel="Active Clinic Patients">
span data-title="Active Clinic Patients">Active Clinic Patients</span>
</li>
<li id="filterTypes" data-value="126" onclick="tier1FilterChanged(this);" data-rel="Inactive Patients">
<span data-title="Inactive Patients">Inactive Patients</span>
</li>
</ul>
</div>
我的解决方案:private IWebElement parentFilter=>Driver.FindElement(By.xpath(“//div[@id='main_filter'][1]/span”));
public void SelectFilter(string filterOption)
{
ElementHandler.Click(parentFilter);
IWebElement element = driver.FindElement(By.Id("parentFilter"));
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].removeAttribute('style')", element);
IWebElement filterName = element.FindElement(By.XPath("//li/span[contains(text(),'" + filterOption + "')]"));
//driver.FindElement(By.XPath("/ul[@id='parentFilter']/li/span[contains(text(),'"+ filterOption + "')]"));
ElementHandler.SelectFromDropdown(parentFilter, filterName);
}
public static void SelectFromDropdown(IWebElement element1,IWebElement element2)
{
Actions action = new Actions(driver);
action.ClickAndHold(element1).Build().Perform();
action.ClickAndHold(element1).MoveToElement(element2).Click().Build().Perform();
}
您可以尝试在隐藏的ul
元素上执行一些Javascript来更改它的style属性并显示它。我看到您已经在尝试删除style属性,但让我向您展示一种在此之前已经成功使用的方法:
IWebElement elementToShow = driver.FindElement(By.XPath("//ul[@class='dropSelect']"));
((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].style.display = 'block';", elementToShow);
如果可以,那么您应该可以单击li
元素。
问题内容: 我正在尝试从一个站点中删除下拉列表的所有类别组合。但是,选项的文本属性仅作为空白出现。尽管在检查时,我可以看到每个选项都包含文本。 输出: 如果我收到文字,则想遍历所有值以获取其他下拉菜单的不同组合。 问题答案: 该标签具有 风格 属性集为 显示:无; 因此您可以使用以下代码块来打印选项:
问题内容: 我对正则表达式不太满意,但是对于PHP,我想从TinyMCE返回的字符串中的HTML标记中删除属性。 所以换成香草。 我将如何通过类似功能来实现这一目标? 问题答案: 务实的正则表达式将在所有合理的情况下解决此问题。不是第一个捕获组的匹配部分应删除,如下所示: 匹配一个后跟一个或多个“ not ”的字符,直到我们到达该部分为止。该更令其一起工作。将此匹配替换为,这是捕获的组。如果标记不
问题内容: 假设您有一些用Selenium抓取并用BeautifulSoup解析的html源: 有没有一种方法可以从html代码或汤对象中删除所有具有以下内容的元素: 1.)html标记源中的属性(即) 要么 2.)在页面的CSS中具有该属性 问题答案: 我想我记得曾经处理过这样的网站-IP地址是通过多个HTML元素在内部表示的,其中一些是通过样式隐藏的,有些则具有使它们不可见的适当CSS类。从这
我是硒的新手,我试图从下拉列表中选择一个选项。下拉列表的超文本标记语言如下: WebElement的是: 我已经尝试了几乎所有的方法,我可以在互联网上找到,但没有任何效果。我试图使用类,包装了,但它抛出了一个异常。 我试图丢失列表中的所有选项,但在这种情况下得到了异常应该有标签,但它有。我需要使用作为findelements的标识符。 请帮我解决这个问题。
JSoup在这里。我有以下我试图解析的超文本标记语言: 不幸的是,它的格式有点不正确(在
我正在尝试使用基于元素ID的标记fire。HTML包含一张包含其他元素的卡片。最外层的父div包含我想用GTM跟踪的ID。当我运行GTM预览并单击元素时,触发器不会触发,当我单击以展开GTM中的单击详细信息时,它显示我单击了卡中的元素,而不是ID为“card-1”的元素。然而,当我将移动到卡内的img时,我能够让元素触发,并确保我点击了img。 我将触发器配置为在包含“card-1”的“Click