gpt4 book ai didi

python-3.x - 自动生成主要标识符时如何使用 selenium 访问文本字段

转载 作者:行者123 更新时间:2023-12-04 00:38:02 25 4
gpt4 key购买 nike

我有一个 HTML 表,它在每一行上输出一些数据,并且每一行都包含一个文本字段。我有一个单独的数据框,其中包含需要输入相关行的值,但我无法弄清楚如何获取正确的文本输入元素,因为名称不是唯一的。

我可以获得包含 123456/1 的元素,因此我可以找到包含我想要的 PartA 的行,但我无法弄清楚如何获取文本输入字段 id="VALUE.ENTER.SYSTEM.1-XY ,然后对应于那个row..XY 是一个数值,它会根据数据的行数和 我不能假设 XY 的特定值对应于我想要查找的值。

我不知道该行的完整 @value 并且页面上列出的值一次限制为 50 个,所以仅仅因为我没有找到它一次并不意味着它不会出现在以后的页面上。我需要找到表中的第一行,从中提取一个值,然后如果我在另一个数据框中有匹配项,如果我想在继续之前向行尾的文本框添加一个值下一行并重复 extractcomparesubmit 步骤,直到我用完行

在 python 中定位文本输入字段的任何可靠方法

title ="EnterValueHere"



我的代码
for row in rows:
RowData = row.find_elements_by_tag_name("input")
for cell in RowData:
#Get the ID in question
if "/" in cell.get_attribute("value"):
TextToSplit =cell.get_attribute("value")
PartA,PartB= str(TextToSplit).split("/")
print(PartA)

示例表
  <tr>
<td class="tablesaw-cell-persist">
<input type="hidden" name="UNIQUE_ID.SYSTEM.01" value="12">
<input type="hidden" name="HEADER_ID.SYSTEM.01" value="">
123456/1<input type="hidden" name="CODE.SYSTEM.01" value="123456/1">
<span id="ANCHOR.SYSTEM.01"></span>
</td>
<td class="tablesaw-cell-persist">
BLOGGS JOE<input type="hidden" name="NAME.SYSTEM.01" value="JOE BLOGGS">
</td>
<td class="tablesaw-cell-persist">
1<input type="hidden" name="ATTEMPT.SYSTEM.01" value="1">
</td>

<td>
<input type="hidden" name="PRODUCTID.DUM_ASSESSMENT.MENSYS.1-12" value="XY1234+1">
<input type="hidden" name="SUS_CODE.DUM_ASSESSMENT.MENSYS.1-12" value="">

<div class="sv-input-group-table"><div class="sv-input-group"><span class="sv-input-group-addon"><span class="mme-input-group">

N<input type="hidden" name="RTS_CODE.DUM_ASSESSMENT.MENSYS.1-12" value="N">
</span></span><input type="text" class="sv-form-control sv-form-control-xs" name="VALUE.ENTER.SYSTEM.1-12" id="VALUE.ENTER.SYSTEM.1-12" title="EnterValueHere" value=""></div></div>
<span class="fbk-input-group fbk-select"></span>
</td>


</tr>
<tr>
<td class="tablesaw-cell-persist">
<input type="hidden" name="UNIQUE_ID.SYSTEM.02" value="12">
<input type="hidden" name="HEADER_ID.SYSTEM.02" value="">
123456/1<input type="hidden" name="CODE.SYSTEM.02" value="234456/1">
<span id="ANCHOR.SYSTEM.02"></span>
</td>
<td class="tablesaw-cell-persist">
BLOGGS JOE<input type="hidden" name="NAME.SYSTEM.02" value="J BLOGGS">
</td>
<td class="tablesaw-cell-persist">
1<input type="hidden" name="ATTEMPT.SYSTEM.02" value="1">
</td>

<td>
<input type="hidden" name="PRODUCTID.DUM_ASSESSMENT.MENSYS.1-02" value="XY1234+2">
<input type="hidden" name="SUS_CODE.DUM_ASSESSMENT.MENSYS.1-02" value="">

<div class="sv-input-group-table"><div class="sv-input-group"><span class="sv-input-group-addon"><span class="mme-input-group">

N<input type="hidden" name="RTS_CODE.DUM_ASSESSMENT.MENSYS.1-02" value="N">
</span></span><input type="text" class="sv-form-control sv-form-control-xs" name="VALUE.ENTER.SYSTEM.1-02" id="VALUE.ENTER.SYSTEM.1-02" title="EnterValueHere" value=""></div></div>
<span class="fbk-input-group fbk-select"></span>
</td>


</tr>
<tr>
<td class="tablesaw-cell-persist">
<input type="hidden" name="UNIQUE_ID.SYSTEM.03" value="12">
<input type="hidden" name="HEADER_ID.SYSTEM.03" value="">
123456/1<input type="hidden" name="CODE.SYSTEM.03" value="56789/1">
<span id="ANCHOR.SYSTEM.02"></span>
</td>
<td class="tablesaw-cell-persist">
BLOGGS JOE<input type="hidden" name="NAME.SYSTEM.03" value="JM BLOGGS">
</td>
<td class="tablesaw-cell-persist">
1<input type="hidden" name="ATTEMPT.SYSTEM.03" value="1">
</td>

<td>
<input type="hidden" name="PRODUCTID.DUM_ASSESSMENT.MENSYS.1-03" value="XY1234+2">
<input type="hidden" name="SUS_CODE.DUM_ASSESSMENT.MENSYS.1-03" value="">

<div class="sv-input-group-table"><div class="sv-input-group"><span class="sv-input-group-addon"><span class="mme-input-group">

N<input type="hidden" name="RTS_CODE.DUM_ASSESSMENT.MENSYS.1-02" value="N">
</span></span><input type="text" class="sv-form-control sv-form-control-xs" name="VALUE.ENTER.SYSTEM.1-03" id="VALUE.ENTER.SYSTEM.1-03" title="EnterValueHere" value=""></div></div>
<span class="fbk-input-group fbk-select"></span>
</td>


</tr>

最佳答案

所以首先你需要为你的代码获取 TR 123456/1 。 xpath 将是

//tr[td//input[@name="CODE.SYSTEM.XY"][@value=123456/1]

所以上面是获取包含您的 tr 元素的 input 元素。现在您希望输入位于此 tr 内,这可以通过将 XPath 扩展为
//tr[td//input[@name="CODE.SYSTEM.XY"][@value=123456/1]/td//input[@title='EnterValueHere']

更新 1:2018 年 5 月 30 日

你应该使用
//tr[td//input[starts-with(@name, 'CODE.SYSTEM.')][starts-with(@value, '123456/')]/td//input[@title='EnterValueHere']

the first section says find a tr anywhere in the document then [] condition says which has an element td and child input field anywhere hwre which as attribute name starting with CODE.... and value starting 12345/ once the tr is found find another td inside that which has an input with title entervaluehere

关于python-3.x - 自动生成主要标识符时如何使用 selenium 访问文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50439404/

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