首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用python和selenium将文本发送到type属性为隐藏的输入元素

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

Stack Overflow用户
提问于 2018-06-17 15:42:21
回答 3查看 903关注 0票数 2

我是python和selenium的新手。我想要单击get_likes_button,并且在执行此操作时需要发送值= 1803345990687013485。

这是HTML

代码语言:javascript
复制
<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>

下面是代码

代码语言:javascript
复制
driver.find_element_by_xpath("//input[@name='id']").send_key('1803345990687013485')
driver.find_element_by_id('get_likes_button').submit()

我收到以下消息

异常:消息:元素不可见。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-18 01:38:45

此错误消息...

代码语言:javascript
复制
Exception: Message: Element not visible.

不可见所需元素为 ...implies

主要问题是<input>标签有一个type="hidden"属性。

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

代码语言:javascript
复制
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()
票数 1
EN

Stack Overflow用户

发布于 2018-06-17 18:34:24

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

代码语言:javascript
复制
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();
票数 0
EN

Stack Overflow用户

发布于 2018-06-18 00:00:00

要单击Get Like按钮,您可以使用以下代码:

代码语言:javascript
复制
get_likes = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.ID, "get_likes_button")))  

之后,如果输入类型从type='hidden'更改,您可以与输入字段交互,如下所示:

代码语言:javascript
复制
input_field = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.NAME, "id")))  

看到这样的超文本标记语言非常奇怪:

代码语言:javascript
复制
<input name="id">  

顺便说一句,希望这能有所帮助。

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

https://stackoverflow.com/questions/50894672

复制
相关文章

相似问题

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