Selenium输入文本不会替换所有值

时间:2017-09-05 14:01:43

标签: javascript jquery python css selenium

我提供的输入是假设在两个标签处替换旧值。这些值在一个选项卡上自动填充,但我完全不使用自动填充功能。 该值仅在一个选项卡上替换,而不在另一个选项卡上替换。第二个选项卡显示第一个选项卡的xml版本。

Code of the page

Tab 1 where I am providing input

 AllElements = driver.find_elements_by_xpath("//div[@class='CodeMirror cm-s-
               codeedit CodeMirror-wrap']")
    for row in Inputs:
        Content = row['Content']
        Universe = row['Universe']



    for ele in AllElements:
        count = count + 1

        if count == 1:
            ele.click()
            #Content = 'TR.NetAssetEstBrokerName'
            driver.execute_script('return arguments[0].setAttribute("style", 
                      "visibility:visible")', ele)
            driver.execute_script("arguments[0].innerText = ' " + Content + 
                       " ' ", ele)
            driver.execute_script('return 
                      arguments[0].setAttribute("value",' + Content + ')', 
                                                    ele)


        if count == 2:
            ele.click()
            #Universe = 'IBM.N@RIC'
            driver.execute_script('return arguments[0].setAttribute("style", 
                  "visibility:visible")', ele)
            driver.execute_script("arguments[0].innerText = ' " + Universe + 
                            " ' ", ele)
            driver.execute_script('return 
                   arguments[0].setAttribute("value",'+Universe+')', ele)


    driver.find_element_by_id('button-1093-btnEl').click()

1 个答案:

答案 0 :(得分:0)

这是因为你正在使用javascriptexecutor,它直接改变了DOM的值。如果您希望您的功能应该按照业务逻辑使用操作,例如setAttribute,它可以按要求运行

driver.findElement(By.id("YOURID")).setAttribute("value", "your value");

希望它会对你有所帮助:)。