如何在selenium firefox窗口中使用python更改innerHTML?

时间:2017-04-08 00:16:28

标签: python selenium

我正在尝试将一串字符输入到使用selenium firefox打开的页面上的隐藏文本区域。我已经得到它来返回html,但还没有弄清楚如何编辑html,就像我在检查元素时能够做的那样。我对编码很新,所以请原谅我听起来多么无知。

这是我想输入的html:

app.ports.uploadFile.subscribe(function(pathAndId){
    var [tasksrvPath, formId] = pathAndId
    try {
        var fd = new FormData(document.getElementById(formId));
        var r = new XMLHttpRequest()
        r.open("POST", tasksrvPath, true)
        r.setRequestHeader("Authorization", "Bearer " + token() )
        r.send(fd)
        r.onload = function() {
            app.ports.status.send(r.statusText)
        }
    } catch(e) {
        console.log(e.message);
    }
})

我理解我想输入需要在两个<textarea id = "xxx" name = "xxx" class = "xxx" style = "border : 1px solid #c1c1c1; display : none; height : 40px; margin : 10px 25px; padding : 0px; resize : none; width : 250px;"> </textarea> >之间输入,但我不知道如何1.使用python输入文本,以及2.如果文本我如果<仍设置为textarea,则会输入。

1 个答案:

答案 0 :(得分:1)

如果您想让此文字区域可见,您需要制作&#39; display:none&#39;显示:阻止&#39;使用如下的执行脚本。之后,您可以使用sendkeys发送文本。

driver = webdriver.Firefox()
driver.implicitly_wait(20)
driver.get("Url of your page")
driver.maximize_window()
driver.execute_script("document.getElementById('xxx').style.display = 'block';")
driver.find_element_by_id("xxx").send_keys("test")

如果您有任何疑问,请告诉我