无法使用VBA在网站中选择Radiobutton
以下是我正在使用的代码:无法使用VBA在网站中选择Radiobutton,vba,radio-button,Vba,Radio Button,以下是我正在使用的代码: Sub Websitedata() Dim ie As Object Dim myURL As String myURL = "FIRST PAGE" Set ie = New InternetExplorerMedium ie.Visible = True ie.navigate myURL Do While ie.readyState <> 4 And ie.Busy DoEve
Sub Websitedata()
Dim ie As Object
Dim myURL As String
myURL = "FIRST PAGE"
Set ie = New InternetExplorerMedium
ie.Visible = True
ie.navigate myURL
Do While ie.readyState <> 4 And ie.Busy
DoEvents
Loop
'Selects a type from a dropdown bar
ie.document.forms("actionForm").elements("dropdownbar").Value = "311"
'Inputs data
ie.document.forms("actionForm").elements("inputbox1").Value = ""
'Inputs data
ie.document.forms("actionForm").elements("inputbox2").Value = ""
'Inputs data
ie.document.forms("actionForm").elements("inputbox3").Value = ""
'Inputs data
ie.document.forms("actionForm").elements("inputbox4").Value = ""
'Inputs data
ie.document.forms("actionForm").elements("inputbox5").Value = ""
'Pressed submit and goes to next page.
ie.document.forms("actionForm").elements("_eventId_Search").Click
'Needs to press a radiobutton.
ie.document.getElementByName("declarationId").Click
End Sub
子网站数据()
模糊的物体
将myURL设置为字符串
myURL=“第一页”
设置ie=新的InternetExplorerMedium
可见=真实
浏览我的网址
在ie.readyState 4和ie.Busy.忙的时候做
多芬特
环
'从下拉栏中选择类型
ie.document.forms(“actionForm”).元素(“dropdownbar”).Value=“311”
'输入数据
ie.document.forms(“actionForm”).elements(“inputbox1”).Value=“”
'输入数据
ie.document.forms(“actionForm”).elements(“inputbox2”).Value=“”
'输入数据
ie.document.forms(“actionForm”).elements(“inputbox3”).Value=“”
'输入数据
ie.document.forms(“actionForm”).elements(“inputbox4”).Value=“”
'输入数据
ie.document.forms(“actionForm”).elements(“inputbox5”).Value=“”
'按提交并转到下一页。
ie.document.forms(“actionForm”)。元素(“\u eventId\u Search”)。单击
'需要按一个单选按钮。
ie.document.getElementByName(“声明ID”)。单击
端接头
单击单选按钮时出现问题。尝试检查、单击、评估所有内容
以下是页面的HTML:
<TABLE id=declarationList class="list sortable" cellSpacing=0 cellPadding=0 width="100%"><TBODY>
<TR class=header>
<TH style="TEXT-ALIGN: center" align=center></TH>
<TH><A onclick="ts_resortTable(this);return false;" class=sortheader href="">Type<SPAN class=sortarrow sortdir="down"> ?</SPAN></A></TH>
<TH><A onclick="ts_resortTable(this);return false;" class=sortheader href="">rts<SPAN class=sortarrow> </SPAN></A></TH>
<TH><A onclick="ts_resortTable(this);return false;" class=sortheader href="">tyi<SPAN class=sortarrow> </SPAN></A></TH>
<TH><A onclick="ts_resortTable(this);return false;" class=sortheader href="">trtjm<SPAN class=sortarrow> </SPAN></A></TH>
<TH><A onclick="ts_resortTable(this);return false;" class=sortheader href="">erch<SPAN class=sortarrow> </SPAN></A></TH>
<TH><A onclick="ts_resortTable(this);return false;" class=sortheader href="">dft<SPAN class=sortarrow> </SPAN></A></TH>
</TR>
<TR class=evenRow>
<TD style="TEXT-ALIGN: center" align=center><INPUT onclick="updateButtons('Import','GF','79295876',false,'null',false,true,true,false,false,false)" type=radio value=79295876 name=declarationId> </TD>
<TD>IM A </TD>
<TD>4561548 </TD>
<TD>29/03/2018 </TD>
<TD>32856 </TD>
<TD>0313 </TD>
<TD>40 00 , 40 00 </TD>
</TR>
</TBODY></TABLE>
我是一个
4561548
29/03/2018
32856
0313
40 00 , 40 00
我需要它来选择出现在下一页的单选按钮。我是否必须更改顶部的某些数据?请让我知道。我很困惑
更新-此查询仍然没有答案。请提供帮助您可以尝试使用CSS选择器
ie.document.querySelector("input[type=""radio""]").Click
使用提供的HTML测试CSS选择器: 有关CSS选择器的更多信息,请参见:
注意事项: 如果由于先前的单击而刷新页面,则在单击之后,您可能需要引入等待:
Application.Wait Now + TimeSerial(0,0,3)
ie.document.querySelector("input[type=""radio""]").Click
或者
如果打开了一个新窗口,则需要查找该窗口的句柄,或者查找计数最高(最近)的窗口。有很多方法可以详细说明这一点
下面是一个循环输入标记的示例,用于查找具有radio
属性的type
。这取决于您是否有多个,以及它是否单击了正确的一个,但会给您一个想法
Option Explicit
Public Sub test()
Dim n As HTMLDocument
Set n = New HTMLDocument
n.body.innerHTML = [A1] '<== your sample of HTML place in a cell
Dim aList As Object, item As Object
Set aList = n.getElementsByTagName("input")
For Each item In aList
On Error Resume Next
If InStr(item.getAttribute("type").innerText, "radio", 1) > 0 Then
Debug.Print item.outerHTML
item.Click
Exit For
End If
On Error GoTo 0
Next item
End Sub
选项显式
公共子测试()
Dim n作为HTMLDocument
Set n=新的HTMLDocument
n、 body.innerHTML=[A1]'0然后
Debug.Print item.outerHTML
项目。单击
退出
如果结束
错误转到0
下一项
端接头
单选按钮的html在哪里?这是什么网站?我已经给出了页面的html。请检查您收到了什么消息?这是一个内部URL吗?让我澄清一下。第一个代码输入数据并单击提交。提交后,将转到单选按钮所在的下一页。我认为它需要一个代码来理解它应该在当前页面中找到单选按钮,而不是在旧页面中搜索。请帮助我。我在notes部分添加了更多信息。我正在获取的对象不支持此代码“”的此属性错误,即“ie.document.querySelector”(“input[type=”“radio”“]”)
Dim a As Object, exitTime As Date
exitTime = Now + TimeSerial(0, 0, 5)
Do
DoEvents
On Error Resume Next
Set a = IE.document.querySelector("input[type=""radio""]")
On Error GoTo 0
If Now > exitTime Then Exit Do
Loop While a Is Nothing
a.Click
Option Explicit
Public Sub test()
Dim n As HTMLDocument
Set n = New HTMLDocument
n.body.innerHTML = [A1] '<== your sample of HTML place in a cell
Dim aList As Object, item As Object
Set aList = n.getElementsByTagName("input")
For Each item In aList
On Error Resume Next
If InStr(item.getAttribute("type").innerText, "radio", 1) > 0 Then
Debug.Print item.outerHTML
item.Click
Exit For
End If
On Error GoTo 0
Next item
End Sub