首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用chromedp修改HTML元素的属性

如何使用chromedp修改HTML元素的属性
EN

Stack Overflow用户
提问于 2021-02-25 14:12:59
回答 1查看 1.2K关注 0票数 1

我试图用chromedp将输入元素的禁用属性设置为false。我可以用console chrome dev工具修改它的值,但在我的代码中没有实现。

我将解释这个输入的全部行为,以及为什么我需要它。

  1. 我有一个第一个选择输入,我用这个命令修改它

chromedp.Run(ctx,chromedp.SetValue("selectname=lstDoc",rcp,chromedp.ByQuery))如果err != nil { log.Fatal( err ) }

通常,您必须单击它,当您修改它的值时,它会自动更改我要针对的属性的禁用属性。起作用了。

  1. 现在我们到达了我无法修改的元素,我可以将日期放入其中,所以现在我的选择器正确了--我不能更改禁用的属性,这里我实际上正在尝试:

dateDebut := "#txtDebutMAJ“err = chromedp.Run(ctx,chromedp.SetAttributeValue(dateDebut,"disabled","false",chromedp.ByQuery))如果err != nil { log.Fatal(err) }

我已经在false上使用headless运行chromedp,所以我可以清楚地看到元素仍然是禁用的,因为它总是灰色的。

我在控制台上尝试过的东西起了作用:

代码语言:javascript
复制
$("#txtDebutMAJ").disabled = false
EN

回答 1

Stack Overflow用户

发布于 2021-03-02 13:17:37

最后,我找到了一个解决方案,使用了更少的代码,问题的根源如下,单击select不触发器是onchange属性,所以我使用了SendKeys函数。

这里有一篇关于这个问题的文章:https://github.com/chromedp/chromedp/issues/607

我使用的解决方案是:https://github.com/chromedp/chromedp/issues/8#issuecomment-602279477

作为结论,我使用了以下代码来设置select的值:

代码语言:javascript
复制
    err = chromedp.Run(ctx, chromedp.SetValue("select[name=lstDoc]", rcp, chromedp.ByQuery))
            if err != nil {
                log.Fatal(err)
            }

这用于设置属性值:

代码语言:javascript
复制
err = chromedp.Run(ctx, chromedp.SetAttributeValue(dateDebut, "disabled", "false", chromedp.ByQuery))
    if err != nil {
        log.Fatal(err)
    }

对于最后只使用以下代码的代码:

代码语言:javascript
复制
err = chromedp.Run(ctx, chromedp.SendKeys(selectRCP, "RCP"))
    if err != nil {
        log.Fatal(err)
    }

像个魅力一样工作!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66370190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档