图像,src,href在同一范围内。如何定位? Webdriver,css定位器

时间:2016-09-29 07:39:02

标签: xpath selenium-webdriver css-selectors webdriver

我曾尝试以click方式在Google图片上进行过多次尝试,但到目前为止还没有运气?你能帮忙吗?

<div class="AppLogos">
    <span class="iTunesLogo">
    <span class="GoogleLogo">
        <a href="https://play.google.com/store/apps/details?id=com.sportsdirect.sdapp&hl=en&utm_source=global_co&utm_medium=prtnr&utm_content=Mar2515&utm_campaign=PartBadge&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1" target="_top">
<img class="img-responsive" alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png">
        </a>
    </span>
</div>

2 个答案:

答案 0 :(得分:0)

我不知道您使用的是哪种语言,但对于C#:

IWebElement googleLogo = driver.FindElement(By.ClassName("img-responsive"));
googleLogo.Click();

应该可以工作,具体取决于html的其余部分,以及该类是否出现在其他地方。 XPath应该可以正常工作。

答案 1 :(得分:0)

来自评论: -

  

www.sportsdirect.com - 我想在启动时找到谷歌应用徽标(第二个弹出窗口)

(假设您正在使用JAVA)实际上这个pop位于<iframe>内,这就是您无法找到此元素的原因。你应该尝试使用WebDriverWait等待这个<iframe>出现在欲望弹出窗口中,然后在找到欲望元素之前切换到<iframe>,如下所示: -

driver.get("http://www.sportsdirect.com/");
driver.manage().window().maximize()

WebDriverWait wait = new WebDriverWait(driver, 60)

//now wait for pop visible with iframe and then switch to it
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.cssSelector("iframe[src*='appadvert']")));

//now wait for desire element visible and enable to click
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("span.GoogleLogo > a"))).click();