我正在使用硒蟒和生菜来测试django应用程序.
在以下模式中有许多具有xpath的元素,我不知道文档中存在多少这些元素.
.//*[@id='accordion-note-1']
.//*[@id='accordion-note-2']
.//*[@id='accordion-note-3']
.//*[@id='accordion-note-4']
Run Code Online (Sandbox Code Playgroud)
有没有办法在driver.find_elements_by_xpath中使用模式?
基本上我的目的是让所有项目都具有这种xpath模式.
我正在尝试使用XPATH从以下位置检索值email1,Email2和HT
<table class="table-striped table-bordered" cellspacing="0" style="table-layout: fixed; width: 100%;">
<colgroup>
<tbody>
<tr class="GPEHNV5BGF GPEHNV5BNF" __gwt_subrow="0" __gwt_row="0">
<td class="GPEHNV5BFF GPEHNV5BHF GPEHNV5BIF GPEHNV5BOF">
<div __gwt_cell="cell-gwt-uid-515" style="outline-style:none;">email1</div>
</td>
<td class="GPEHNV5BFF GPEHNV5BHF GPEHNV5BOF">
<td class="GPEHNV5BFF GPEHNV5BHF GPEHNV5BCG GPEHNV5BOF">
</tr>
<tr class="GPEHNV5BFG" __gwt_subrow="0" __gwt_row="1">
<td class="GPEHNV5BFF GPEHNV5BGG GPEHNV5BIF">
<div __gwt_cell="cell-gwt-uid-515" style="outline-style:none;">Email2</div>
</td>
<td class="GPEHNV5BFF GPEHNV5BGG">
<td class="GPEHNV5BFF GPEHNV5BGG GPEHNV5BCG">
</tr>
<tr class="GPEHNV5BGF" __gwt_subrow="0" __gwt_row="2">
<td class="GPEHNV5BFF GPEHNV5BHF GPEHNV5BIF">
<div __gwt_cell="cell-gwt-uid-515" style="outline-style:none;">HT</div>
</td>
<td class="GPEHNV5BFF GPEHNV5BHF">
<td class="GPEHNV5BFF GPEHNV5BHF GPEHNV5BCG">
</tr>Run Code Online (Sandbox Code Playgroud)
以下是我使用XPATH的代码:
int rows=driver.findElements(By.xpath("//table[@class='table-striped table-bordered']/tbody/tr")).size();
List<String> …Run Code Online (Sandbox Code Playgroud) 我需要将JSON字符串转换为XML字符串.标签确实包含属性.从本主题的答案开始,我开始使用XSLT.
存在函数fn:json-to-xml.我知道它应该将JSON转换为没有属性的XML(我使用XSLT格式化).
我该如何使用这个功能?
因为它是在XSLT中实现的,我猜在.xsl文件中,但我找不到任何示例.
提前谢谢了!
是否可以应用仅与唯一属性匹配的模板?
<node name="region">1</node>
<node name="region">2</node>
<node name="region">3</node>
<node name="place">a</node>
<node name="place">b</node>
<node name="title">test</node>
Run Code Online (Sandbox Code Playgroud)
我想一次执行一个模板,@name="region"并一次@name="place".可以使用XSLT/XPath 1.0完成吗?
我的最终目标是JSON输出,如下所示:
"container":{
"region":["1","2","3"],
"place":["a","b"],
"title":"test"
}
Run Code Online (Sandbox Code Playgroud) 有人能告诉我以下XPath表达式之间的区别吗?
/IntuitResponse/QueryResponse/Bill/./Id
/IntuitResponse/QueryResponse/Bill/Id
Run Code Online (Sandbox Code Playgroud)
我已经尝试使用两者来解析文档根目录中的XML文档,我得到了相同的响应.
操作:使用Selenium webdriver使用GetText()方法从文本框中获取值
HTMl代码
<input class="form-control ng-pristine ng-valid dirty ng-touched" type="text" placeholder="Search Query" my-enter="SaveBind('Search');" ng-model="Query.SearchTerm" name="headerSearch">
Run Code Online (Sandbox Code Playgroud)
上面一个是带文本控件的输入类型,所以我想从文本框中提取值
我的Xpath:
@FindBy(how = How.XPATH, using = "//input[@ng-model='Query.SearchTerm']")
public WebElement searchQuery;
Run Code Online (Sandbox Code Playgroud)
如果我使用getText方法我得到空值
String query = searchQuery.getText();
Run Code Online (Sandbox Code Playgroud)
但是当我们通过发送键传递值时,它完美地工作并在控件中输入值粘贴
searchQuery.sendKeys("Welcome");
Run Code Online (Sandbox Code Playgroud)
我的疑问:输入的值不会显示在HTML标记中?那么我如何从文本框中提取值?是否可以自动化Angular Js?
我正在尝试使用以下结构提取文本:
<p class="id1"> Title or something </p>
<p> Text text text </p>
<p> More text </p>
<p class="id2"> Something else </p>
Run Code Online (Sandbox Code Playgroud)
我用的时候:
text_info <- xpathSApply(PARSED, "//p", xmlValue)
Run Code Online (Sandbox Code Playgroud)
结果是:
[1] 'Title or something'
[2] 'Text text text'
[3] 'More text'
[4] 'Something else'
Run Code Online (Sandbox Code Playgroud)
我只希望里面的文字<p>没有类:
[1] 'Text text text'
[2] 'More text'
Run Code Online (Sandbox Code Playgroud)
我使用以下代码,但它需要很长时间,我有很多文本:
text_info <- setdiff(xpathSApply(PARSED, "//p", xmlValue), xpathSApply(PARSED, "//p[@class]", xmlValue))
Run Code Online (Sandbox Code Playgroud)
有没有办法只使用一个xpathSApply来提取那些没有类的人?
有什么区别的功能
.//input[@id='stack'] 和 //input[@id='stack']
这是我使用Firebug检查元素时的样子
当我在xpath中尝试相同的语法时,它选择结果页面2.我在selenium IDE中尝试了相同的方法并单击了find,它在执行代码时选择结果页面2.我正在接受No Such Element异常
Xpath语法: //a[contains(@href,'/jobs?q=qa+engineer&l=Renton%2C+WA&start=10')]/span[contains(@class,'pn')][text()='2']
public void jobSearch(){
WebDriver driver= new FirefoxDriver();
driver.get("https://www.indeed.com");
driver.findElement(By.id("what")).sendKeys("QA Engineer");
driver.findElement(By.id("where")).clear();
driver.findElement(By.id("where")).sendKeys("Seattle,WA");
driver.findElement(By.id("fj")).click();
driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);
driver.findElement(By.xpath("//a[contains(@href,'/jobs?q=qa+engineer&l=Renton%2C+WA&start=10')]/span[contains(@class,'pn')][text()='2']")).click();
Run Code Online (Sandbox Code Playgroud)
感谢您的宝贵时间和宝贵的建议.
我对XPath并不完全熟悉.我做了大量的搜索,只为直系孩子找到了解决方案.
要求是选择一个没有任何子元素,大子元素,盛大子元素或其家族树中存在文本节点的子元素.
一个简单的例子是: -
<div><p></p><p><span></span></p><p><span>notemptychild</span></p><p>notempty</p></div>
Run Code Online (Sandbox Code Playgroud)
如果我运行以下XPath查询: -
//p[not(text())]
Run Code Online (Sandbox Code Playgroud)
它给出了以下输出: -
Element='<p/>'
Element='<p>
<span/>
</p>'
Element='<p>
<span>notemptychild</span>
</p>'
Run Code Online (Sandbox Code Playgroud)
(我正在使用freeformatter xpath工具:http://www.freeformatter.com/xpath-tester.html )
第一个元素是有效选择.
第二个元素是有效选择.
第三个元素不是有效选择,因为其p子span节点中有一个文本节点.
我希望我没有提出复杂的问题.