51Testing软件测试论坛

标题: 定位 [打印本页]

作者: 15889369825    时间: 2016-12-24 10:31
标题: 定位
# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
from selenium.common.exceptions import NoAlertPresentException
import unittest, time, re
class test(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(30)
        self.base_url = "http://test.robotscloud.com/"
        self.verificationErrors = []
        self.accept_next_alert = True
   
    def test_(self):
        driver = self.driver
        driver.get(self.base_url + "/")
        driver.find_element_by_link_text(u"立即注册").click()
        driver.find_element_by_id("submit").click()
        driver.find_element_by_id("email").clear()
        driver.find_element_by_id("email").send_keys("163.com")
        driver.find_element_by_id("submit").click()
        driver.find_element_by_id("email").clear()
        driver.find_element_by_id("email").send_keys("cylan_123@sina.com")
        driver.find_element_by_id("submit").click()

定位不到“立即注册” ,想问问这种时候一般怎么定位    为什么这样定位

作者: 梦想家    时间: 2016-12-24 15:25
xpath或是link定位呢?
作者: 15889369825    时间: 2016-12-24 16:03
梦想家 发表于 2016-12-24 15:25
xpath或是link定位呢?

xpath不知道怎么定位   link定位但定位不到
作者: 梦想家    时间: 2016-12-24 16:11
上网搜一下xpath定位
作者: 掉渣饼    时间: 2016-12-24 20:24
driver.find_element_by_link_text(u"立即注册").click()
把你这句话换成
driver.find_element_by_xpath("//a[contains(text(),'立即注册')]").click()
试试看
作者: 15889369825    时间: 2016-12-26 09:50
掉渣饼 发表于 2016-12-24 20:24
driver.find_element_by_link_text(u"立即注册").click()
把你这句话换成
driver.find_element_by_xpath( ...

能讲解下为什么这么写么,求教
作者: 若尘_51    时间: 2016-12-26 10:54
15889369825 发表于 2016-12-26 09:50
能讲解下为什么这么写么,求教

(1)driver.find_element_by_link_text(u"立即注册").click()为什么不行?
【答】:因为网页的"立即注册"前面多了个空格,换成u" 立即注册"试试,估计可以
或者:PartialLinkText定位,通过部分链接定位,可以只用链接的一部分文字进行匹配。
driver.find_element_by_partial_link_text(u"立即注册").click()

(2)driver.find_element_by_xpath("//a[contains(text(),'立即注册')]").click() ,为什么要这么写?
【答】这是xpath的模糊定位方法,这种方式一般用于知道超链接上显示的部分或全部文本信息时,可以使用。意思是定位到包含“立即注册“文本的链接,进行点击动作。xpath定位方法比较灵活,可以去学习下。





作者: 15889369825    时间: 2016-12-26 11:29
若尘_51 发表于 2016-12-26 10:54
(1)driver.find_element_by_link_text(u"立即注册").click()为什么不行?
【答】:因为网页的"立即注 ...

好的,谢谢了
作者: jingzizx    时间: 2017-1-25 13:24
学习




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2