我一直在寻找并尽力而为,我需要帮助。我正在尝试从页面中的元素中获取文本。它是一个弹出窗口但不是警报或新窗口,只是框架内的另一个弹出窗口。 WebDriver似乎找到了元素,但是当我运行print语句来检查返回的文本时,它始终是一个空行。我试过,而不是get_attribute,.text以及......没有运气。
这是html:
<textarea id="textareafield-2320-inputEl" class="x-form-field x-form-text x-form-textarea" name="activityComments" rows="4" cols="20" autocomplete="off" aria-invalid="false" style="width: 100%;"></textarea>
这是我的代码:
contents = driver.find_element_by_xpath(".//*[@class='x-form-item-input-row']/td[2]/textarea").get_attribute("value")
print contents
答案 0 :(得分:2)
您的XPath
非常广泛。页面上的多个元素可能与此print(len(driver.find_elements_by_xpath(".//*[@class='x-form-item-input-row']/td[2]/textarea")))
匹配。要检查它,请尝试1
。如果结果超过XPath
,您似乎处理错误的元素。
尝试使用更明确的//textarea[starts-with(@id, "textareafield-")][@name="activityComments"]
:
function obj = roc(timeSeries, varargin)
%% Input parser
% 1. Create input parser instance
p = inputParser;
% 2. Default values for input arguments
default_lag = 1;
default_weightVector = 1;
% 3. Validation of input arguments
valid_lag = {'vector', 'nonempty', 'integer', 'positive'};
check_lag = @(x) validateattributes(x, {'numeric'}, valid_lag);
% 4. Add input arguments to input scheme
p.addRequired('timeSeries');
p.addParameter('lag', default_lag, check_lag);
p.addParameter('weightVector', default_weightVector);
% 5. Parse input arguments
parse(p, timeSeries, varargin{:});
% 6. Assign results to variables
lag = p.Results.lag;
if check_weightVector(p.Results.weightVector, lag) == true
weightVector = p.Results.weightVector;
end
function vout = check_weightVector(weightVector, lag) % validation function
if length(lag) ~= length(weightVector)
error('lengthWeightVector:WrongNumberOfElements', 'The number of elements in "weightVector" must correspond to the number of elements in "lag"');
elseif sum(weightVector) ~= 1
error('sumWeightVector:SumNotEqualToOne', 'The sum of elements in "weightVector" must equal 1');
end
vout = true;
end
%% Main code
end