返回

Playwright 如何设置隐藏选择框的值?

java

如何在 Playwright 中设置隐藏选择框的值

问题

当你在 Playwright 中使用 Java 时,如何设置包含隐藏选择框的网站的隐藏选择框的值?

解决方案

要解决此问题,请按照以下步骤操作:

1. 识别隐藏选择框

使用 page.locator() 查找包含隐藏选择框的元素。

2. 获取隐藏选择框元素

从元素中获取隐藏选择框,可以使用 querySelector() 方法。

3. 模拟单击以显示选择框

单击包含选择框的元素以显示它,可以使用 click() 方法。

4. 等待选择框可见

使用 waitForSelector() 方法等待选择框变为可见。

5. 设置选择框的值

使用 selectOption() 方法设置选择框的值。

示例代码

import com.microsoft.playwright.*;

public class HiddenSelect {

    public static void main(String[] args) throws Exception {
        try (Playwright playwright = Playwright.create()) {
            Browser browser = playwright.chromium().launch(new BrowserType.LaunchOptions().setHeadless(false));
            Page page = browser.newPage();
            page.navigate("https://fatwa.infostrategic.com/ar/fatwa-Form");

            // 识别包含隐藏选择框的元素
            ElementHandle element = page.locator("div[class='form-control ui fluid selection dropdown']");

            // 获取隐藏选择框元素
            ElementHandle select = element.querySelector("select[name='data[info][natId]']")

            // 模拟单击以显示选择框
            element.click();

            // 等待选择框可见
            page.waitForSelector("select[name='data[info][natId]']:visible")

            // 设置选择框的值
            select.selectOption("194")

            // 关闭浏览器
            browser.close();
        }
    }
}

注意事项

  • 确保选择框元素在执行 selectOption() 方法之前已可见。
  • 如果选择框元素仍然不可见,请尝试使用 JavaScript 脚本手动设置其可见性。
  • 此解决方案适用于基于 Chromium 的浏览器,例如 Chrome 和 Microsoft Edge。对于其他浏览器,可能需要使用不同的方法。

常见问题解答

Q1:如何识别隐藏选择框?
A: 使用 page.locator() 查找包含隐藏选择框的元素。

Q2:如何获取隐藏选择框元素?
A: 使用 querySelector() 方法从元素中获取隐藏选择框。

Q3:如何模拟单击以显示选择框?
A: 使用 click() 方法单击包含选择框的元素以显示它。

Q4:如何等待选择框可见?
A: 使用 waitForSelector() 方法等待选择框变为可见。

Q5:如何设置选择框的值?
A: 使用 selectOption() 方法设置选择框的值。