首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Selenium处理object标记内的html元素

Selenium处理object标记内的html元素
EN

Stack Overflow用户
提问于 2015-10-08 02:40:11
回答 3查看 3.1K关注 0票数 4

我正在努力验证html object标签中的html元素。

下面是我的测试html (test1.html)。

代码语言:javascript
复制
<html>
<body>
    <h1>this is test 1</h1>
    <object id='obj1' width="100%" height="200px" data="http://www.w3schools.com/"></object>
    <br>    <br>    <br>    <br>
    <iframe id='ifr1' width="100%" height="200px" src="http://www.w3schools.com/"></iframe>
</body>
</html>

iframe的情况下,使用webdriver switchto frame方法很容易处理,如下例所示。

代码语言:javascript
复制
@Test
public void testIframe() {
    try {
        FirefoxDriver driver = new FirefoxDriver();
        driver.get("http://localhost/test1.html");

        driver.switchTo().frame(0);
        Assert.assertTrue(driver.findElement(By.xpath("/html/body/div[1]/div")).getText().equals("THE WORLD'S LARGEST WEB DEVELOPER SITE"));

        driver.quit();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

但是对于object标签,switchTo方法不能以同样的方式应用。我很好奇Selenium提供了这种处理方式。

有没有人有解决这个问题的想法,或者有什么建议?

EN

回答 3

Stack Overflow用户

发布于 2018-07-03 08:16:15

我也使用了类似于@Deepak_Mahalingam的东西。以防有人发现他的语法不起作用。我使用chrome并检查代码以获得xpath。

代码语言:javascript
复制
link = driver.find_element_by_xpath('//*[@id="gl-consoleTabs-slides"]/div/div/object').get_attribute('data')
票数 1
EN

Stack Overflow用户

发布于 2016-02-05 21:15:32

我也遇到了同样的问题,下面的解决方案适用于我的项目:

1.我编写了一个java方法,从源代码的<Object>标记的data属性中获取URL。

2.在新选项卡中打开提取的URL并执行所需的测试。

3.切换回main选项卡。

这里我使用的方法,你可以根据你的需求进行修改:

代码语言:javascript
复制
public void getObjectTagURL(){
   try {
      String pageSource= driver.getPageSource(); 
      int startIndex =str.indexOf("http://www.myURL");         
      int endIndex= str.indexOf("</object>");
      String url= str.substring(startIndex, endIndex);  
   } catch (Exception e) {
        System.out.println(e);   
     }

希望能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2020-05-27 19:47:01

您也可以使用SwitchTo接口访问object元素,方法如下:

代码语言:javascript
复制
driver.SwitchTo().Frame(driver.FindElement(By.TagName("object")));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33000001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档