Javascript 使用长xpath的量角器xpath标识
新的量角器脚本 根据下面的运行,有没有关于我为什么无法在堆栈跟踪中找到元素的反馈Javascript 使用长xpath的量角器xpath标识,javascript,testing,xpath,protractor,end-to-end,Javascript,Testing,Xpath,Protractor,End To End,新的量角器脚本 根据下面的运行,有没有关于我为什么无法在堆栈跟踪中找到元素的反馈 TempString = browser.driver.findElement(by.xpath("/html/body/section/div/form/section/section[2]/div/div/div[1]/div/div/div[3]/div[2]/div[2]/div[1]/div[1]/h3")).getText(); 这是mortgagecalculator.org网站上的“每月付款”字段
TempString = browser.driver.findElement(by.xpath("/html/body/section/div/form/section/section[2]/div/div/div[1]/div/div/div[3]/div[2]/div[2]/div[1]/div[1]/h3")).getText();
这是mortgagecalculator.org网站上的“每月付款”字段。
依赖“每月付款”文本并获得:
由于“每月付款”文本有两个元素,因此您可以使用来获取这两个元素,并使用
first()
和last()
来获取所需的元素:
var monthlyPayments = element.all(by.xpath('//span[contains(., "Monthly Payment")]/preceding-sibling::h3'))
monthlyPayments.first().getText();
monthlyPayments.last().getText();
我尝试了单引号和双引号;运气不好。您是否尝试过:
/*@id=“calc”]/form/section/section[2]/div/div/div[1]/div/div/div[3]/div[2]/div[1]/div[1]/h3
?这是Chrome的element inspector给我的。在任何情况下,我认为在开始时都需要一个双正斜杠。@IsaacLyman我认为这样的xpath太复杂了,请查看我的答案。谢谢。这是一个很好的方法。我想指出的是,我个人从来没有使用过xpath,因为它太脆弱了——页面的一点点变化就会抹去所有xpath。我更喜欢制作巧妙的CSS路径。但是您的xpath应该是非常可靠的,因为它发现了不太可能改变的措辞。@alecxe学习量角器js语法的速度很慢:很难找到“List”方法的良好文档源。也就是说,我的脚本在尝试遍历数组时出错……有什么想法吗?见答案
var monthlyPayments = element.all(by.xpath('//span[contains(., "Monthly Payment")]/preceding-sibling::h3'))
monthlyPayments.first().getText();
monthlyPayments.last().getText();
browser.driver.findElement(by.xpath("//input[@value='Calculate']")).click();
var TempStringList;
var fTempString;
var sTempString;
//attempt to get everything on the page with span label Monthly Payment - note there are two
TempStringList = browser.driver.findElements(by.xpath('//span [contains(., " Monthly Payment")]/preceding-sibling::h3'));
//GOOD TO HERE ON RUN BUT PROBLEM BELOW WITH NAVIGATING THE ARRAY LIST
fTempString = TempStringList.first().getText();