当前位置: 首页 > 知识库问答 >
问题:

需要使用xpath定位器标识值“SivaKumar”的web元素并返回它。使用相同的web元素,获取文本并返回它

樊宏邈
2023-03-14

我是硒的初学者。我在这方面没有任何实际经验。上个月,我注册了一门硒初学者到高级课程,在那里我几乎没有可以动手的活动。

我被困在某个地方。让我解释一下我的问题。

以下是活动描述:

相对定位符

URL:http://webapps.tekstac.com/Shopify/

试验程序

使用模板代码。不要在DriverSetup文件中进行任何更改。仅在建议的部分中添加代码,使用DriverSetup()中定义的getWebDriver()方法调用驱动程序使用xpath定位器识别值“SivaKumar”的Web元素并返回它。使用相同的Web元素,获取文本并返回它。

我为此编写的代码:

    //Add required imports
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;

public class RelativeXpathLocator    //DO NOT Change the class Name
{
    static WebDriver driver;
    static String baseUrl = "http://webapps.tekstac.com/Shopify/";
    public WebDriver createDriver()    //DO NOT change the method signature
    {
        DriverSetup ds = new DriverSetup();
        return ds.getWebDriver();
       //Implement code to create Driver from DriverSetup and return it
    }
    public WebElement getRelativeXpathLocator(WebDriver driver)//DO NOT change the method signature
    {
        WebElement l = driver.findElement(By.xpath("//*[@id='tbrow']/td[3]"));
        return (l);
       /*Replace this comment by the code statement to get the Web element */
       /*Find and return the element */
       
    }
    public String getName(WebElement element)//DO NOT change the method signature
    {
        return element.getAttribute("tbrow");
        //Get the attribute value from the element and return it
    }

    public static void main(String[] args){
        RelativeXpathLocator pl=new RelativeXpathLocator();
        driver = pl.createDriver();
        //WebElement les = pl.getRelativeXpathLocator(driver);
        //String las = pl.getName(les);
        
        //Add required code
        
    }
}

有点卡住了。不确定我在getname或main()中犯了什么错误。

结束部分是编译时抛出错误。说“无法使用预期的xpath定位名称:但是:

请告知。

共有1个答案

臧翰采
2023-03-14
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;

public class RelativeXpathLocator    //DO NOT Change the class Name
{
    static WebDriver driver;
    static String baseUrl = "http://webapps.tekstac.com/Shopify/";
    public WebDriver createDriver()    //DO NOT change the method signature
    {
        DriverSetup ds = new DriverSetup();
        return ds.getWebDriver();
       //Implement code to create Driver from DriverSetup and return it
    }
    public WebElement getRelativeXpathLocator(WebDriver driver)//DO NOT change the method signature
    {
        WebElement element = driver.findElement(By.xpath("//tr[@id='tbrow']/td[3]"));
        return element;
       /*Replace this comment by the code statement to get the Web element */
       /*Find and return the element */
       
    }
    public String getName(WebElement element)//DO NOT change the method signature
    {
        return element.getText();
        //Get the attribute value from the element and return it
    }

    public static void main(String[] args){
        RelativeXpathLocator pl=new RelativeXpathLocator();
        driver = pl.createDriver();
        //WebElement les = pl.getRelativeXpathLocator(driver);
        //String las = pl.getName(les);
        
        //Add required code
        
    }
}
 类似资料:
  • 我试图找到正确的xpath表达式来选择包含特定文本的元素的父元素。 在下面的示例中,我希望选择文本匹配为“4”或任何其他数字的“span”元素,并且父元素与文本“Rooms”匹配: 我的XPath示例-匹配“div”元素中的每个“span” 源代码 我想要的是选择包含数字4的“span”元素作为文本,但html可能会更改,可能只有两个或一个“span”元素,如下例所示: 或

  • 问题内容: 如何更改元素的内容(在这种情况下为变量“ make”中的元素)而不丢失内容?如果您可以指出其他可以修改现有xml文档的纯python模块,请告诉我。 PS!BeautifulSoup非常适合HTML和XML的屏幕抓图和解析! 问题答案: 请查看上的文档。这有效:

  • 我能把1打印出来吗? 我尝试了以下: 它返回给我一个错误: 给定的选择器。//[@id='version id']/tbody/tr/td[2]/span/text()无效或不会导致webelement。出现以下错误:InvalidSelectorError:xpath表达式“.//[@id='version id']/tbody/tr/td[2]/span/Text()”的结果是:[object

  • 我试图找到前面的元素(输入)使用Selenium驱动程序与Xpath选择器的帮助(我可以访问标签),它可以很好地使用Chrome开发工具-F12选项,但使用下面的代码行返回空。 我的实际HTML看起来像 有人能帮我吗?

  • 问题内容: 我有这样一种逻辑,即先单击当前页面的标题,再单击下一步,然后再次获取标题,并且如果两个标题相同,则意味着导航尚未移至下一页,它将再次单击下一步。 但是,我的问题是title元素的Xpath不同-同一title元素具有两个Xpath。一个是一些页面,另一个是其他页面。 就是这个 要么 那么,我该如何处理呢? 问题答案: 如果元素具有两个xpath,则可以编写两个xpath,如下所示 例如

  • 我有这样一种逻辑,首先单击next按钮获取当前页面的标题,然后再次获取标题,如果两个标题相同,意味着导航没有移动到下一页,它会再次单击next。 然而,我的问题是title元素的Xpath不同-同一title元素有两个Xpath。一个是一些页面,另一个是其他页面。 要么是这个, 或 那么,我该怎么处理呢?