从CSV文件中搜索页面并选择相对定位单选按钮

Search Page from CSV File and Select Relative Positioned Radio Button

本文关键字:选择 相对 定位 单选按钮 CSV 文件 搜索      更新时间:2023-09-26

摘要

我使用iMacros从CSV文件中提取数据,并将数据输入相应的字段(即用户名、密码、名字、姓氏、电子邮件等(

页面如下所示:

http://oi58.tinypic.com/2q3uonc.jpg

问题

我的整个问题是从CSV文件中获取公司名称的信息,使用它在页面上搜索特定文本,然后使用相对定位,允许宏检查表行旁边的相应单选按钮。该表是动态的,因此它不会总是相同的。我有一个宏可以将表格提取到CSV文件中,这样我就可以轻松地搜索公司,只需使用CSV文件中行外的POS号码,就可以更容易地进行单选按钮检查。(提取没有我希望的那么干净,但这本身就是另一个问题。我现在可以手动清理。提取中有不必要的空格,这会使POS信息混乱且不可靠。(

注意:我也可以切换到Excel,因为组织,并且能够清楚地看到正在提取的数据。但由于与Firefox的兼容性,我有点被卡住了。

问题

简而言之,我的问题是:从CSV文件中搜索页面中的特定关键字并使用相对位置或类似内容填充相应单选按钮的最佳方法是什么

我发现表中每一行的POS号码都与相邻的单选按钮相同。我只是被困在这一点上。我觉得这可能无法在CSV或iMacros的基本功能中完成。我确实有企业版,所以excel和任何编程语言都可以使用。我也认为javascript需要做我需要做的事情。但作为一个编程新手,我不知道每种语言与另一种语言相比是如何交互的。

p.S 如果我想在firefox中使用此宏,则该网站与internet explorer以及chrome存在兼容性问题。但在这一点上,我会尽我所能。

这是我迄今为止的代码:

VERSION BUILD=10022823
TAB T=1
TAB CLOSEALLOTHERS
URL GOTO=
SET !DATASOURCE C:'Users'Blake'Downloads'input.csv
SET !LOOP 1
SET !DATASOURCE_LINE {{!LOOP}}
FRAME NAME=Detail
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:sUserName CONTENT={{!COL1}}
SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:form1 ATTR=NAME:sPassword CONTENT=Password1
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:sNameFirst CONTENT={{!COL3}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:sNameLast CONTENT={{!COL4}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:sEmail CONTENT={{!COL5}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:sPhoneNumber CONTENT={{!COL6}}
TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:form1 ATTR=NAME:sFaxNumber CONTENT={{!COL7}}
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=NAME:form1 ATTR=NAME:bForceUserToChangePassword CONTENT=yes
TAG POS=1 TYPE=INPUT:CHECKBOX FORM=NAME:form1 ATTR=NAME:copyRoles CONTENT=yes
TAG POS=1 TYPE=* ATTR=TXT:{{!COL10}} EXTRACT=TXT
PROMPT {{!EXTRACT}}
TAG POS=R1 TYPE=INPUT:RADIO FORM=NAME:form1 ATTR=NAME:enterpriseOid CONTENT=yes

input.csv文件

#UserID#,#Password#,#FirstName#,#LastName#,#Email#,#PhoneNumber#,#FaxNumber#,#ForcedPassChange?(ie.yes;no)#,#CopyRoles?(ie.yes;no)#,#Destination Company(ie.MALARKEY ROOFING PRODUCTS (MALHIC))see Table of Companies.csv#
ExampleUser,ExamplePass,ExampleFirstName,ExampleLastName,exampleemail@gmail.com,555-555-5555,555-none-none,no,yes,MALHIC
ExampleUser,ExamplePass,ExampleName,ExampleLastName,exampleemail@gmail.com,555-555-5555,555-none-none,no,yes,MALARKEY

表行的HTML

<td class="DetailBodyTableRowEven" style="border-width: 0px 0px 1px; border-style: solid; border-color: white;"> <input name="enterpriseOid" type="RADIO" value="134305050665">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1000 BULBS (100HIC)</td>

由于信息是业务密集型的,我不得不编辑图片以获取明显的用户名等。但如果这个问题得到任何处理,会上传一个经过编辑的测试页面

谢谢你阅读我的问题书!由于问题的性质,我不知道如何更好地总结这一点。

想明白了!经过一周对不同代码片段的测试和大量的试错,终于成功了!

TAG POS=1 TYPE=TD ATTR=CLASS:DetailBodyTableRowEven&&TXT:*{{!COL10}}* EXTRACT=TXT

我觉得自己像个白痴,甚至从现在开始就问这个问题。但是问题已经解决了:(