如何使用python和selenium将文本发送到type属性为hidden的输入元素

时间:2018-06-17 07:42:21

标签: python selenium selenium-webdriver webdriver hidden

我是python和selenium的新手。我想点击get_likes_button,我需要发送值= 1803345990687013485。

这是HTML

<form action="" method="post" accept-charset="utf-8"><span style="font-size: 14px;"> 
<i class="fa fa-heart" style="color: #F12938;"></i> 20 </span> 
<input type="hidden" value="1803345990687013485" name="id">
<button class="btn btn-primary pull-right" type="submit" name="submit"
 id="get_likes_button"> Get Likes </button> </form></b>

这是代码

driver.find_element_by_xpath("//input[@name='id']").send_key('1803345990687013485')
driver.find_element_by_id('get_likes_button').submit()

我收到以下消息

  

例外:消息:元素不可见。

3 个答案:

答案 0 :(得分:0)

尝试下面的代码段。希望这会对你有所帮助。

WebDriver driver = new FirefoxDriver();
driver.navigate().to(URL);                    
JavascriptExecutor javascriptExecuter = (JavascriptExecutor)driver;
javascriptExecuter.executeScript("document.getElementsByName('id')[0].value='452525252525';");
driver.findElement(By.id("get_likes_button")).submit();

答案 1 :(得分:0)

点击获取按钮,您可以使用以下代码:

get_likes = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "get_likes_button")))  

之后如果输入类型从type='hidden'更改,则可以将输入字段与:

进行交互
input_field = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.NAME, "id")))  

看到 HTML 这样很奇怪:

<input name="id">  

顺便说一下,希望这会有所帮助。

答案 2 :(得分:0)

此错误消息......

Exception: Message: Element not visible.

...表示所需元素不可见

主要问题是<input>标记具有属性type="hidden"

要将字符序列 1803345990687013485 发送到输入字段并在按钮上调用click(),您可以使用以下解决方案:

driver.execute_script("document.getElementsByName('id')[0].setAttribute('type','text')")
driver.find_element_by_xpath("//input[@name='id']").send_key('1803345990687013485')
driver.find_element_by_xpath("//button[@class='btn btn-primary pull-right' and @id='get_likes_button']").click()