gpt4 book ai didi

Python Selenium - 在文本框中输入值

转载 作者:行者123 更新时间:2023-11-28 20:18:32 24 4
gpt4 key购买 nike

我正在使用 python selenium 来自动化我们学生的出勤记录。考勤网页中的内容为表格形式。有一个文本框,我们在其中标记了“A”或“P”。源码如下:

<form name="attendance1" action="/sjcet/attendance.php" method="POST"> 
<table style="width: 65%; margin: auto;">
<tr>
<th style="text-align: center;">Roll No.</th>
<th style="text-align: center;">PID</th>
<th style="text-align: center;">Student Name</th>
<th style="text-align: center;">Status</th>
<th style="text-align: center;">Any Comment</th>
</tr>
<tr style="text-align: center;">
<td style="text-align: center;"> <input name="roll_no[]" tabindex="0" size="3" type='text' value = '1' readonly='readonly' style="text-align: center;" /> </td>
<td style="text-align: center;"> <input name="pid[]" tabindex="0" size="10" type='text' value = 'EU1124021' readonly='readonly' style="text-align: center;" /> </td>
<td style="text-align: left;"> Abraham Ancy Chandy Anne</td>
<td style="text-align: center;">
<input size="3" name="status[]" type="text" onkeypress="return isNumberKey(event)" maxlength ="1" tabindex="1" style="text-align: center;" value='A' />
</td>
<td style="text-align: center;">
<input size="20" name="comment[]" type="text" />
</td>
</tr>
<tr style="text-align: center;">
<td style="text-align: center;"> <input name="roll_no[]" tabindex="0" size="3" type='text' value = '2' readonly='readonly' style="text-align: center;" /> </td>
<td style="text-align: center;"> <input name="pid[]" tabindex="0" size="10" type='text' value = 'EU2134011' readonly='readonly' style="text-align: center;" /> </td>
<td style="text-align: left;"> Barabde Pranjal Sanjiv Sudha</td>
<td style="text-align: center;">
<input size="3" name="status[]" type="text" onkeypress="return isNumberKey(event)" maxlength ="1" tabindex="2"
style="text-align: center;" value='A' />
</td>
<td style="text-align: center;">
<input size="20" name="comment[]" type="text" />
</td>
</tr>

我们输入'P'或'A'的文本框代码如下:

<input size="3" name="status[]" type="text" onkeypress="return isNumberKey(event)" maxlength ="1" tabindex="1" 
style="text-align: center;" value='A' />
...
...
...
<input size="3" name="status[]" type="text" onkeypress="return isNumberKey(event)" maxlength ="1" tabindex="2"
style="text-align: center;" value='A' />

默认值是“A”,我尝试使用 python selenium 输入值“P”,我尝试的代码是:

driver.find_element_by_css_selector("input[tabindex='1']").send_keys('P')

我也试过

driver.find_element_by_xpath("//input[@tabindex='1']").send_keys('P')

但它并没有将文本更改为“P”,而是将光标移至该文本框。可能是什么问题?是因为 'onkeypress' 事件吗?请帮助我,我是 python selenium 的新手。

isNumberKey(event)的代码如下:

function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode

if(charCode != 8){
if(charCode != 112)
{
if(charCode != 80)
{
if(charCode != 97)
{
if(charCode != 65)
{
return false;
}
}
}
}
}
return true;
}

最佳答案

您需要先清理该字段,因为那里有一个默认的 A 值:

for elm in driver.find_elements_by_css_selector("input[name^=status]"):
elm.clear()
elm.send_keys('P')

此外,一个快速而肮脏的解决方案可能是删除 onkeypress 属性:

for elm in driver.find_elements_by_css_selector("input[name^=status]"):
driver.execute_script("arguments[0].removeAttribute('onkeypress');", elm)
elm.send_keys('P')

关于Python Selenium - 在文本框中输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36372600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com