Access 2016,刚刚从I.E DOM切换到Selenium / Chrome:)自动提交Form / WebPage后需要获取eBay列表ID号-这部分的确很不错!通过下面的XPath或Css行获取运行时428“对象不支持此属性或方法”。错误时的getItemID值显示为null(getItemID =“”)
Select Case [Forms]![SettingsForm]![ListingOptionsFrame]
Case 1
'Listing Item --------------- AutoListOption-------------------------
Dim getText As String
Me.ItemID = getItemID
driver.FindElementByXPath("//input[@value='List item']").Click
PauseTimed (10) 'submitting Listing to eBay
getText = driver.FindElementByXPath("//*@id='Email']").getAttribute("data-itemid") '.getText() in place of .getAttribute 428's
'getText = driver.FindElementByCss("#Email").getAttribute("data-itemid") '.getText() in place of .getAttribute 428's as well
Case 2
ebay的HTML-简洁起见。需要data-itemid中的“值”。
<a id="Email" ...... data-itemid="143211121121"></a>
如有必要,还可以从获取“值”。我也有类似的428错误,需要使用Right()来获取“值”。
有想法吗? 428错误可能来自页面重新加载还是提交后弹出窗口?页面的地址不变。如果您能指出我的方向,将不胜感激?
答案 0 :(得分:0)
vba硒中的方法只是Attribute()
,您现有的错误代码应该是438。
driver.FindElementByXPath("//*@id='Email']").Attribute("data-itemid")
您正在使用webElement,对于VBA实施,该webElement具有不同的语法。通过Microsoft Internet Controls在IE中使用节点时,您使用getAttribute
语法,其命名与Element
界面的javascript方法相同。
Option Explicit
Public Sub Example()
Dim d As WebDriver
Const URL As String = "https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors"
Set d = New ChromeDriver
With d
.Start "Chrome"
.get URL
Debug.Print .FindElementByCss("#edit-history-menu").Attribute("type")
.Quit
End With
End Sub