C# Jquery没有';在硒中找不到元素
当我在firebug的控制台中检查时,它会找到这个按钮 我正在使用C# Jquery没有';在硒中找不到元素,c#,jquery,python,selenium,selenium-rc,C#,Jquery,Python,Selenium,Selenium Rc,当我在firebug的控制台中检查时,它会找到这个按钮 我正在使用 sel.add_script( sel.get_location(), "jquery.js") #here I get u'fd6c42bcc770ca9decc4f358df3688290a4257ad'` idOfResultWithSomeImage=sel.get_eval("window.jQuery('#result').find('img').filter('[alt=SeleImage
sel.add_script( sel.get_location(), "jquery.js")
#here I get u'fd6c42bcc770ca9decc4f358df3688290a4257ad'`
idOfResultWithSomeImage=sel.get_eval("window.jQuery('#result').find('img').filter('[alt=SeleImage]').eq(0).parents('form:first').find('a').eq(1).attr('id')")`
#here I get u"window.jQuery('#fd6c42bcc770ca9decc4f358df3688290a4257ad').parent().find('button')"
pathOfButton="window.jQuery('#" + idOfResultWithSomeImage+ "').parent().find('button')"
#here I get false :/
isButtonPreset = sel.is_element_present(pathOfButton)
#so here I get error. Element not present.
sel.click(pathOfButton)
我用WingIde编码
你知道为什么吗
编辑
# -*- coding: utf-8 -*-
我在调试模式下进行检查,并:
#from here I get 08f0ddbfa71df43bee87d9becdec5ced4ead3419
idOfResultWithRyanairFlight=sel.get_eval("window.jQuery('#result').find('img').filter('[alt=Ryanair]').eq(0).parents('form:first').find('a').eq(1).attr('id')")
我将这些查询放在firebug控制台和第一及第二个工作中
编辑
有趣的是,我用c#写了同样的脚本,我也有同样的问题
#it returns true
sel.is_element_present("css=#08f0ddbfa71df43bee87d9becdec5ced4ead3419")
#it returns false
sel.is_element_present("window.jQuery('#08f0ddbfa71df43bee87d9becdec5ced4ead3419')")
#it return false
sel.is_element_present("window.jQuery(#08f0ddbfa71df43bee87d9becdec5ced4ead3419)")
只有d是正确的 如果您想在Selenium中使用CSS/jQuery样式选择器,我认为您必须一直使用CSS选择器。换言之,您需要以下内容:
var dOfA = selenium.GetEval("window.jQuery('#result').find('img').filter('[alt=SomeIMG]').eq(0).parents('form:first').find('a').eq(1).attr('id')");
var a=selenium.IsElementPresent("window.jQuery('#" + dOfA + "').parent().find('button')");
var b = selenium.IsElementPresent("$('#" + dOfA + "')");
var c = selenium.IsElementPresent("jQuery('#" + dOfA + "')");
var d = selenium.IsElementPresent("css=#" + dOfA);
var e = selenium.GetEval("window.jQuery('#" + dOfA + "')");
也许有更好的方法可以做到这一点;另外,我还没有用python编程,所以我的语法可能不正确
有关定位器的更多信息,请参阅。我对此也很感兴趣,您找到解决方案了吗?使用driver.find_element_by_css_selector(“#someid”)
pathOfButton = "css=#" + idOfResultWithSomeImage + " ~ button"
if (!sel.is_element_present(pathOfButton))
pathOfButton = "css=button ~ #" + idOfResultWithSomeImage
sel.click(pathOfButton)