使用 python 和 selenium 的随机银行类型身份验证
Random banking type authentication using python and selenium
我的任务是尝试为一个令人难忘的单词字段输入身份验证详细信息,例如网上银行,您有一个 8 位数字,系统会提示您随机选择这些。
数字显示在输入框旁边'Enter 5th character'
。
输入框字段:
<input style="border:none;" size="1" maxlength="1" type="password" name="e0" id="eid1" class="mem" value="" tabindex="1">
<input style="border:none;" size="1" maxlength="1" type="password" name="e1" id="eid2" class="mem" value="" tabindex="1">
所有信息都保存在每个框的 tr
中,如下所示:
<tr>
<td class="white"><input type="hidden" name="0" value="5">Enter 8th character </td>
<td class="Mem"><input style="border:none;" size="1" maxlength="1" type="password" name="e0" id="eid1" class="memCd" value="" tabindex="1"></td>
</tr>
以前有人用硒遇到过这个问题吗?
已编辑
表格看起来像这样
<form method="POST" action="nextStage.php" autocomplete="off">
<input type="hidden" name="return" id="returnid" value="" />
<table align="center" cellspacing="1" cellpadding="4">
<tbody><tr>
<td><input type="hidden" name="0" value="0" />Enter 1st character </td>
<td colspan="2"><input size="1" maxlength="1" type="password" name="e0" id="eid1" class="enterDetails" value="" tabindex="1" /></td>
</tr><tr>
<td><input type="hidden" name="1" value="2" />Enter 3rd character </td>
<td colspan="2"><input size="1" maxlength="1" type="password" name="e1" id="eid2" class="enterDetails" value="" tabindex="2" /></td>
</tr><tr>
<td><input type="hidden" name="2" value="4" />Enter 5th character </td>
<td colspan="2"><input size="1" maxlength="1" type="password" name="e2" id="eid3" class="enterDetails" value="" tabindex="3" /></td>
编辑以显示新代码
pattern = re.compile(r"Enter (\d+)\w+ character of memorable word")
number_string = driver.find_element_by_css_selector("#homePane > form > table > tbody > tr:nth-child(1) > td:nth-child(1)").text
number = int(pattern.search(number_string).group(1))
target_input = driver.find_element_by_css_selector("#homePane > form > table > tbody > tr:nth-child(1) > td:nth-child(2) > input[type=password]")
target_input.send_keys(secret_string[number])
number_string = driver.find_element_by_css_selector("#homePane > form > table > tbody > tr:nth-child(2) > td:nth-child(1)").text
number = int(pattern.search(number_string).group(1))
target_input = driver.find_element_by_css_selector("#homePane > form > table > tbody > tr:nth-child(2) > td:nth-child(2) > input[type=password]")
target_input.send_keys(secret_string[number])
number_string = driver.find_element_by_css_selector("#homePane > form > table > tbody > tr:nth-child(3) > td:nth-child(1)").text
number = int(pattern.search(number_string).group(1))
target_input = driver.find_element_by_css_selector("#homePane > form > table > tbody > tr:nth-child(3) > td:nth-child(2) > input[type=password]")
target_input.send_keys(secret_string[number])
使用 Enter Nth character
文本找到 input
,例如,使用 CSS 选择器,从文本中提取 N
数字,从秘密中获取字符按索引字符串并将其发送到密码 input
:
import re
secret_string = "secret string"
pattern = re.compile(r"Enter (\d+)\w+ character")
number_string = driver.find_element_by_css_selector("tr > td.white > input").text
number = int(pattern.search(number_string).group(1))
target_input = driver.find_element_by_css_selector("tr > td.mem > input[type=password]")
target_input.send_keys(secret_string[number])
我的任务是尝试为一个令人难忘的单词字段输入身份验证详细信息,例如网上银行,您有一个 8 位数字,系统会提示您随机选择这些。
数字显示在输入框旁边'Enter 5th character'
。
输入框字段:
<input style="border:none;" size="1" maxlength="1" type="password" name="e0" id="eid1" class="mem" value="" tabindex="1">
<input style="border:none;" size="1" maxlength="1" type="password" name="e1" id="eid2" class="mem" value="" tabindex="1">
所有信息都保存在每个框的 tr
中,如下所示:
<tr>
<td class="white"><input type="hidden" name="0" value="5">Enter 8th character </td>
<td class="Mem"><input style="border:none;" size="1" maxlength="1" type="password" name="e0" id="eid1" class="memCd" value="" tabindex="1"></td>
</tr>
以前有人用硒遇到过这个问题吗?
已编辑
表格看起来像这样
<form method="POST" action="nextStage.php" autocomplete="off">
<input type="hidden" name="return" id="returnid" value="" />
<table align="center" cellspacing="1" cellpadding="4">
<tbody><tr>
<td><input type="hidden" name="0" value="0" />Enter 1st character </td>
<td colspan="2"><input size="1" maxlength="1" type="password" name="e0" id="eid1" class="enterDetails" value="" tabindex="1" /></td>
</tr><tr>
<td><input type="hidden" name="1" value="2" />Enter 3rd character </td>
<td colspan="2"><input size="1" maxlength="1" type="password" name="e1" id="eid2" class="enterDetails" value="" tabindex="2" /></td>
</tr><tr>
<td><input type="hidden" name="2" value="4" />Enter 5th character </td>
<td colspan="2"><input size="1" maxlength="1" type="password" name="e2" id="eid3" class="enterDetails" value="" tabindex="3" /></td>
编辑以显示新代码
pattern = re.compile(r"Enter (\d+)\w+ character of memorable word")
number_string = driver.find_element_by_css_selector("#homePane > form > table > tbody > tr:nth-child(1) > td:nth-child(1)").text
number = int(pattern.search(number_string).group(1))
target_input = driver.find_element_by_css_selector("#homePane > form > table > tbody > tr:nth-child(1) > td:nth-child(2) > input[type=password]")
target_input.send_keys(secret_string[number])
number_string = driver.find_element_by_css_selector("#homePane > form > table > tbody > tr:nth-child(2) > td:nth-child(1)").text
number = int(pattern.search(number_string).group(1))
target_input = driver.find_element_by_css_selector("#homePane > form > table > tbody > tr:nth-child(2) > td:nth-child(2) > input[type=password]")
target_input.send_keys(secret_string[number])
number_string = driver.find_element_by_css_selector("#homePane > form > table > tbody > tr:nth-child(3) > td:nth-child(1)").text
number = int(pattern.search(number_string).group(1))
target_input = driver.find_element_by_css_selector("#homePane > form > table > tbody > tr:nth-child(3) > td:nth-child(2) > input[type=password]")
target_input.send_keys(secret_string[number])
使用 Enter Nth character
文本找到 input
,例如,使用 CSS 选择器,从文本中提取 N
数字,从秘密中获取字符按索引字符串并将其发送到密码 input
:
import re
secret_string = "secret string"
pattern = re.compile(r"Enter (\d+)\w+ character")
number_string = driver.find_element_by_css_selector("tr > td.white > input").text
number = int(pattern.search(number_string).group(1))
target_input = driver.find_element_by_css_selector("tr > td.mem > input[type=password]")
target_input.send_keys(secret_string[number])