Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium XUIElement是否有类似的WebElement getText()_Selenium_Xcode Ui Testing - Fatal编程技术网

Selenium XUIElement是否有类似的WebElement getText()

Selenium XUIElement是否有类似的WebElement getText(),selenium,xcode-ui-testing,Selenium,Xcode Ui Testing,我正在使用xguitest使用Xcode 7.3进行AppleTV用户界面测试 它有xguielement和WebElement一样。但是对于SeleniumWebElement中存在的XguiElement,是否有类似的getText()方法 基本上我想从xguielement捕获文本 例如: let ele:XCUIElement = XCUIApplication().collectionViews.cells[

我正在使用xguitest使用Xcode 7.3进行AppleTV用户界面测试

它有
xguielement
WebElement
一样。但是对于SeleniumWebElement中存在的
XguiElement
,是否有类似的
getText()
方法

基本上我想从
xguielement
捕获文本

例如:

let ele:XCUIElement = XCUIApplication().collectionViews.cells[
                                               "Sign In to Activate"].

因此,是否仍然可以从元素中获取值:“登录以激活”。有什么帮助吗?

对于UI测试,您可能需要以不同的方式思考您的问题。与其尝试读取已知元素的值,不如检查该元素是否存在

实际上,这意味着检查web视图中是否显示具有预期值的标签。因此,如果您正在等待“登录激活”标签出现,您可以通过以下方式声明:

let app = XCUIApplication()
let signInLabel = app.staticTexts["Sign In to Activate"]
XCTAssert(signInLabel.exists)
或者,如果该元素实际上是一个链接,请通过
链接
访问它,如下所示:

let signInLink = app.links["Sign In to Activate"]
XCTAssert(signInLink.exists)

在进行UI测试时,您可能需要以不同的方式思考您的问题。与其尝试读取已知元素的值,不如检查该元素是否存在

实际上,这意味着检查web视图中是否显示具有预期值的标签。因此,如果您正在等待“登录激活”标签出现,您可以通过以下方式声明:

let app = XCUIApplication()
let signInLabel = app.staticTexts["Sign In to Activate"]
XCTAssert(signInLabel.exists)
或者,如果该元素实际上是一个链接,请通过
链接
访问它,如下所示:

let signInLink = app.links["Sign In to Activate"]
XCTAssert(signInLink.exists)

拥有staticText XUIElement后,可以使用
标签
属性获取文本

let app = XCUIApplication()
let textElement = app.staticTexts["myLabelIdentifier"]
let text = textElement.label
无法获取单元格的文本,因为单元格不是staticText(UILabel)对象。如果单元格包含UILabel(文本),则需要首先定位该对象

通过执行
app.staticText
,您可以获得屏幕上的所有文本元素-然后需要将文本元素列表缩小到您感兴趣的文本元素。为此,请在应用程序代码的UILabel中添加一个
accessibilityIdentifier

label.accessibilityIdentifier = "myLabelIdentifier" // This can be whatever String you like
如果您有多个重复使用标签的单元格,您还需要能够识别您感兴趣的单元格。例如,如果要在第三个单元格中查找文本元素:

let app = XCUIApplication()
let cell = app.cells.elementBoundByIndex(2)
let textElement = cell.staticTexts["myLabelIdentifier"]
let text = textElement.label

拥有staticText XUIElement后,可以使用
标签
属性获取文本

let app = XCUIApplication()
let textElement = app.staticTexts["myLabelIdentifier"]
let text = textElement.label
无法获取单元格的文本,因为单元格不是staticText(UILabel)对象。如果单元格包含UILabel(文本),则需要首先定位该对象

通过执行
app.staticText
,您可以获得屏幕上的所有文本元素-然后需要将文本元素列表缩小到您感兴趣的文本元素。为此,请在应用程序代码的UILabel中添加一个
accessibilityIdentifier

label.accessibilityIdentifier = "myLabelIdentifier" // This can be whatever String you like
如果您有多个重复使用标签的单元格,您还需要能够识别您感兴趣的单元格。例如,如果要在第三个单元格中查找文本元素:

let app = XCUIApplication()
let cell = app.cells.elementBoundByIndex(2)
let textElement = cell.staticTexts["myLabelIdentifier"]
let text = textElement.label