Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法将文本传递到文本框_Python_Selenium - Fatal编程技术网

Python 无法将文本传递到文本框

Python 无法将文本传递到文本框,python,selenium,Python,Selenium,以下是HTML代码: <div class="search-nav"> <div class="field"> <input id="search" type="text" class="input-data" placeholder="Enter Claim or Payment Number..." name="QuickSearch"> </

以下是HTML代码:

<div class="search-nav">
    <div class="field">
        <input id="search" type="text" class="input-data" 
                placeholder="Enter Claim or Payment Number..." 
                name="QuickSearch">
        </input>
    </div>
    <button class="search-button" data-ng-click="performSearch($event)"> 
    <i class="search icon"></i></button>
</div>

无法传递文本的原因是,您正在查找
class='field'
id='search'
中的元素。这样,您指的是两个不同的元素
class='field'
是一个
id='search'
是一个

您要做的是,只向输入发送文本。现在,如果您想使用
class='field'
将其发送到div下的这个特定输入,请尝试以下操作:

//div[@class='field']/input[@id='search']"))).send_keys("12343545")
或者如果这是id为“search”的唯一输入字段


如果输入字段位于iframe中,则必须将webdriver的控制切换到该特定iframe,以便在其中执行任何操作:

代码

driver.switch_to.frame(driver.find_element_by_id("payspan-health"))  
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, 'search')))
driver.find_element_by_id('search').send_keys("12343545")

#To switch back to the main window, you can use
driver.switch_to.default_content()

我认为有一个
frame
在那里,首先切换到frame,然后定位元素

//Switch to frame    
driver.switch_to.frame(driver.find_element_by_id("Id of your Frame")) 

waitElem = WebDriverWait(driver, 10)
element = waitElem .until(EC.element_to_be_clickable((By.ID, 'search'))) 

element.send_keys("323232")

请将框架定位器替换为“框架Id”

当前您的Xpath未引用任何内容,因为您所引用的Id和类均不存在此类Web元素

“AND”只能在xpath中对同一标记中的两个属性使用。 例如://input[@id='search'和name='QuickSearch']

因此,将xpath更新为:

//输入[@id='search']或
//输入[@id='search'和@name='QuickSearch']

共享相关信息HTML@cruisepandey-html在文章中,但OP未能缩进,因此不可见。输入标记在哪里结束?在哪里?没有结束标记。你,有一个iframe:在这个文本框代码之后是搜索按钮代码:我试过它不起作用:WebDriverWait(driver,20)。直到(EC.element可点击((By.XPATH,“//div[@class='field']]/input[@id='search'])。发送密钥(“12343545”)请把这段代码打印出来,让我知道它对您是否有效?因为您已经接受了来自imsankalp89的答案。您是否试用了我提供的代码?
driver.switch_to.frame(driver.find_element_by_id("payspan-health"))  
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, 'search')))
driver.find_element_by_id('search').send_keys("12343545")

#To switch back to the main window, you can use
driver.switch_to.default_content()
//Switch to frame    
driver.switch_to.frame(driver.find_element_by_id("Id of your Frame")) 

waitElem = WebDriverWait(driver, 10)
element = waitElem .until(EC.element_to_be_clickable((By.ID, 'search'))) 

element.send_keys("323232")