ruby 硒中的未定义方法错误
undefined method error in ruby selenium
我正在使用 ruby 和 selenium,我的代码如下:
$num=1
def isElementPresent(xpathExpression)
allElements=@driver.find_elements(:xpath,xpathExpression)
if (allElements.size==0)
return true
end
else
return false
end
while Demo.isElementPresent(str1+$num.to_s+str2)
text=@driver.find_element(:xpath,str1+$num.to_s+str2).text
$num+=1
puts "text is:#{text}"
@driver.find_element(:xpath,str1+$num.to_s+str2).click
puts @driver.title
@driver.navigate.back
end
end
我收到 while Demo.isElementPresent(str1+$num.to_s+str2).
的未定义方法错误
感谢任何帮助
据我了解,您的情况应该是:
if (allElements.size>0)
return true
好像大小为 0。这意味着没有元素存在。
此外,在这种情况下,您的函数定义应该在您调用它之前结束。
试试下面的代码:
$num=1
def isElementPresent(xpathExpression)
allElements=@driver.find_elements(:xpath,xpathExpression)
if (allElements.size>0)
return true
end
else
return false
end
end
while isElementPresent(str1+$num.to_s+str2) do
text=@driver.find_element(:xpath,str1+$num.to_s+str2).text
$num+=1
puts "text is:#{text}"
@driver.find_element(:xpath,str1+$num.to_s+str2).click
puts @driver.title
@driver.navigate.back
end
这里我做了两处改动:首先,针对我解释过的条件,其次,在你的循环之前结束函数的定义。
如果它按预期工作,请告诉我。
我正在使用 ruby 和 selenium,我的代码如下:
$num=1
def isElementPresent(xpathExpression)
allElements=@driver.find_elements(:xpath,xpathExpression)
if (allElements.size==0)
return true
end
else
return false
end
while Demo.isElementPresent(str1+$num.to_s+str2)
text=@driver.find_element(:xpath,str1+$num.to_s+str2).text
$num+=1
puts "text is:#{text}"
@driver.find_element(:xpath,str1+$num.to_s+str2).click
puts @driver.title
@driver.navigate.back
end
end
我收到 while Demo.isElementPresent(str1+$num.to_s+str2).
感谢任何帮助
据我了解,您的情况应该是:
if (allElements.size>0)
return true
好像大小为 0。这意味着没有元素存在。
此外,在这种情况下,您的函数定义应该在您调用它之前结束。 试试下面的代码:
$num=1
def isElementPresent(xpathExpression)
allElements=@driver.find_elements(:xpath,xpathExpression)
if (allElements.size>0)
return true
end
else
return false
end
end
while isElementPresent(str1+$num.to_s+str2) do
text=@driver.find_element(:xpath,str1+$num.to_s+str2).text
$num+=1
puts "text is:#{text}"
@driver.find_element(:xpath,str1+$num.to_s+str2).click
puts @driver.title
@driver.navigate.back
end
这里我做了两处改动:首先,针对我解释过的条件,其次,在你的循环之前结束函数的定义。
如果它按预期工作,请告诉我。