小编Nes*_*ews的帖子

Puppeteer 选择链接

我想单击 html 页面中的链接,其中包含以下代码段:

<p>Die maximale Trefferanzahl von 200 wurde überschritten.
  <a href="/rp_web/search.do?doppelt">Verdoppeln Sie hier  Suchergebnislimit.</a>
</p>
Run Code Online (Sandbox Code Playgroud)

我之前设置了一些过滤器,然后我正在加载页面,这将加载我需要的页面。在结果页面上,我想单击 html 代码段中的链接。我正在尝试使用的 js 是这个

await Promise.all([
    page.click('input#landNW'), // set a filter
    page.click('input[type=submit]'), // submit the form
    page.waitForNavigation(), // wait for the page to load
    page.click('p a'), // not working: double the search results
    page.waitForNavigation() // not working: waiting for the page to reload
]).catch(e => console.log(e)); // no error
Run Code Online (Sandbox Code Playgroud)

我很确定page.click('p a')它工作正常,因为在我的 chrome 浏览器的控制台中我可以做document.querySelector("p a").click(),然后按预期重新加载页面。

我还尝试通过使用 href attr 来选择 url,例如 …

javascript node.js google-chrome-headless puppeteer

5
推荐指数
1
解决办法
2万
查看次数

通过变量访问结构体字段

我想迭代结构体的字段并为每次迭代访问其各自的值:

#[derive(Default, Debug)]
struct A {
    foo: String,
    bar: String,
    baz: String
}


fn main() {
    let fields = vec!["foo", "bar", "baz"];
    let a: A = Default::default();

    for field in fields {
        let value = a[field] // this doesn't work
    }
}
Run Code Online (Sandbox Code Playgroud)

如何通过变量访问字段?

rust

5
推荐指数
2
解决办法
5574
查看次数