标签: xpath

在Selenium python中通过xpath模式查找元素

我正在使用硒蟒和生菜来测试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模式.

python xpath selenium-webdriver

1
推荐指数
1
解决办法
1141
查看次数

org.openqa.selenium.InvalidSelectorException-[对象文本]。应该是一个要素

我正在尝试使用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)

selenium xpath selenium-webdriver

1
推荐指数
1
解决办法
1万
查看次数

如何使用XPath/XSLT fn:json-to-xml

我需要将JSON字符串转换为XML字符串.标签确实包含属性.从主题的答案开始,我开始使用XSLT.

存在函数fn:json-to-xml.我知道它应该将JSON转换为没有属性的XML(我使用XSLT格式化).

我该如何使用这个功能?

因为它是在XSLT中实现的,我猜在.xsl文件中,但我找不到任何示例.

提前谢谢了!

java xml xslt xpath json

1
推荐指数
1
解决办法
2720
查看次数

如何将XML元素组转换为JSON列表?

是否可以应用仅与唯一属性匹配的模板?

<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)

xml xslt xpath json xslt-1.0

1
推荐指数
1
解决办法
113
查看次数

使用'.' XPath表达式中的(点或句点)

有人能告诉我以下XPath表达式之间的区别吗?

/IntuitResponse/QueryResponse/Bill/./Id
/IntuitResponse/QueryResponse/Bill/Id
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用两者来解析文档根目录中的XML文档,我得到了相同的响应.

xml xpath

1
推荐指数
1
解决办法
862
查看次数

ng model GetText()方法使用Java发布Selenium WebDriver

操作:使用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?

附加屏幕截图在此输入图像描述

javascript java selenium xpath selenium-webdriver

1
推荐指数
1
解决办法
2017
查看次数

XPath:选择没有class属性的元素

我正在尝试使用以下结构提取文本:

<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来提取那些没有类的人?

xml xpath r web-scraping

1
推荐指数
1
解决办法
278
查看次数

点(.)在硒的xpath中意味着什么?

有什么区别的功能

.//input[@id='stack']//input[@id='stack']

selenium xpath

1
推荐指数
1
解决办法
2110
查看次数

Selenium xpath没有这样的元素异常,即使它在firepath中工作

这是我使用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)

感谢您的宝贵时间和宝贵的建议.

selenium xpath selenium-firefoxdriver selenium-webdriver

1
推荐指数
1
解决办法
3054
查看次数

没有文本节点后代的文档中所有元素的Xpath?

我对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 )

第一个元素是有效选择.

第二个元素是有效选择.

第三个元素不是有效选择,因为其pspan节点中有一个文本节点.

我希望我没有提出复杂的问题.

html php xml xpath

1
推荐指数
1
解决办法
1470
查看次数