我的任务是打开浏览器,转到YT,输入搜索词“qtp”,单击“搜索”按钮。在结果页面上,我想获取频道名称。为了实现这一点,我使用Firebug应用程序来获取第1个3通道名称的以下路径:
当我使用Selenium/testNG执行以下代码时,我捕获了异常,该异常状态为“未找到元素”。我仅使用Selenium(没有TestNG)尝试了类似的代码,但仍然不起作用。使用WebDriver进行了尝试,仍然不起作用。
我知道节点可能有问题,但我无法解决。
使用的罐子: 硒-服务器-独立-2.35.0.jar,junit-4.10.jar,硒-java-2.35.0.jar,硒-服务器-2.35.0.jar;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.SeleneseTestCase;
import com.thoughtworks.selenium.SeleniumException;
public class YT1 extends SeleneseTestCase{
@BeforeTest
public void beforeTest(){
System.out.println("Before");
selenium = new DefaultSelenium("localhost", 4444,"*firefox","http://www.youtube.com");
selenium.start();
}
@Test
public void myTest() throws Exception{
System.out.println("Test");
selenium.open("/");
selenium.type("//*[@id='masthead-search-term']", "qtp");
selenium.click("//*[@id='search-btn']");
Thread.sleep(3000);
try {
System.out.println(selenium.getText("//html/body/div[2]/div[4]/div/div[3]/div/div/div[2]/div[2]/div[2]/div[2]/ol/li[1]/div[2]/div/ul/li/a"));
}
catch (SeleniumException se1){
System.out.println("Element not Found because: " + se1);
}
try {
System.out.println(selenium.getText("//html/body/div[2]/div[4]/div/div[3]/div/div/div[2]/div[2]/div[2]/div[2]/ol/li[2]/div[2]/div/ul/li/a"));
}
catch (SeleniumException se2){
System.out.println("Element not Found because: " + se2);
}
try {
System.out.println(selenium.getText("//html/body/div[2]/div[4]/div/div[3]/div/div/div[2]/div[2]/div[2]/div[2]/ol/li[3]/div[2]/div/ul/li/a"));
}
catch (SeleniumException se3){
System.out.println("Element not Found because: " + se3);
}
}
@AfterTest
public void ShutDown(){
System.out.println("After Test");
selenium.close();
}
}
@pault解决方案的替代方法是使用CSS。它更干净,更快,更具可读性。
div#results > ol#search-results > li > div.yt-lookup-content > div.yt-lookup-meta a.yt-user-name
我将使用以下XPath表达式:
.//div[@id="results"]
/ol[@id="search-results"]/li
/div[contains(@class, "yt-lockup-content")]
/div[contains(@class, "yt-lockup-meta")]
//a[contains(@class, "yt-user-name")]
我已经掌握了XPath的基本知识,但在确定以下内容是否可以在使用XPath的C代码中实现时遇到了一些困难(或者我是否需要将其转移到其他代码中,正如我目前所做的那样)。 我有一个XML文档,它由以下结构组成: 其中有多个设置参数值。现在我需要做的只是检索那些包含name属性某些值的setParameter节点。我可能有这些值的可能匹配列表,但它们不会是完全匹配,它们将是节点的name属性必须包含的值
找不到我的问题的解决方案。我有要识别的节点,我的意思是-我必须获得以下情况下的节点名称: 当我使用以下语法时(FirePath,直接从浏览器) 或 然后我得到节点名称(链接组和文本img)。 在robot框架中,它不适用于关键字Get Text或Get Value。我收到消息:“InvalidSelectorException:消息:无效选择器:由于以下错误,无法找到xpath表达式名称为((//
你们这些家伙,我有这样一个HTML: 这是将上述所有选项放入列表的代码: 实际上它不起作用。我不知道我错在哪里。请帮帮我。非常感谢。
我有一个SVG文档,其中包含类似于以下内容的节点: 我想做的只是选择
我想获取具有Id的单个频道的所有视频。我只得到频道信息的问题。这是我正在使用的链接: https://g data . YouTube . com/feeds/API/users/UCD CIB _ pnqpr 0m _ kkdg 4d z5 a?v=2