我正在尝试单击后面跟着
::before
标签的选择元素。任何人都可以帮我为下面的 HTML 编写 XPath 或 CSSselector 路径吗
下面是我写的点击月份的XPath
driver.findElement(By.xpath("//div[contains(@class,'pika-single is-bound left-aligned bottom-aligned')]/div[contains(@class,'pika-lendar')]/div[contains(@class,'pika-title']/div[1]/select[contains(@class,'pika-select pika-select-month')]"));
CSS 伪元素 用于设置元素的指定部分的样式。它可用于:
::before
是一个伪元素,它允许您将内容从 CSS 插入到页面上(无需将其添加到 HTML 中)。虽然最终结果实际上并不在 DOM 中,但它显示在页面上,就好像它在 DOM 中一样。
您可以在以下位置找到一些相关的详细讨论:
由于日期选择器是一个 html-select 菜单,您必须使用 Select Class。此外,由于您必须与 drop-down-menu 进行交互,因此您必须为 elementToBeClickable()
诱导
WebDriverWait。
要从
下拉中选择文本为January的
<option>
,您可以使用以下任一定位器策略:
使用cssSelector:
WebElement elem = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("select.pika-select.pika-select-month")));
Select mySelect = new Select(elem);
//selecting the item January by value
mySelect.selectByValue("0");
使用 xpath 并在一行中:
//selecting the item January by visible text
new Select(new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//select[@class='pika-select pika-select-month']")))).selectByVisibleText("January");
您可以在以下位置找到一些相关的详细讨论: