我的公司使用方法来隐藏他们网站上的大多数数据,我正在尝试创建一个驱动程序,该驱动程序将扫描已关闭的作业以填充数组以创建新作业,因此不需要用户输入/数据库访问用户。
我做了研究,似乎不能按照我的方式完成:
# Scan page and place 4 different Users into an array
String name = [nil, nil, nil, nil]
String compare_name = nil
c = 0
tr = 1
while c < 4
String compare_name = driver.find_element(:xpath, '//*
[@id="job_list"]/tbody/tr['+tr.to_s+']/td[2]/span[1]/a/span/text()[2]').gets
if compare_name != name[c]
name[c] = compare_name
c = +1
tr = +1
else if compare_name == name[c]
tr = +1
end
end
end
此外,我是一个边走边学的新手,所以这可能不是最佳的,或者无论我如何学会做我想做的事。
现在我想要在屏幕上的项目的网站代码:
<span ng-if="job.customer.company_name != null &&
job.customer.company_name != ''" class="pointer capitalize ng-scope" data-
toggle="tooltip" data-placement="top" title="" data-original-title="406-962-
5835">
<a href="/#/edit_customer/903519"class="capitalize notranslate">
<span class="ng-binding">Name Stuff<br>
<!-- ngIf: ::job.customer.is_cip_user --
<i ng-if="::job.customer.is_cip_user" class="fa fa-user-circle-o ng-scope">
::before == $0
</i>
> Diago Stein</span>
</a>
</span>
Xpath 可以找到 Diago Stein 区域,但由于它是一个文本对象,所以它不起作用。现在要注意的是,所有的类标题、按钮名称等都与页面上的所有其他内容相同。他们总是这样做,这使得扫描变得更加困难,因为这些相同的东西可能在其他地方可能与网站的这个区域没有任何关系。
有没有办法在不知道基于 HTML 的文本区域中可能包含什么内容的情况下获取此文本?注意“Name Stuff”是一家公司的名称,我用这个通用名称隐藏了它以保护隐私。
感谢您的任何想法或建议和帮助。
编辑:澄清一下,我不知道公司的名称或用户名(在本例中为 Diago Stein),这部分代码的全部目的是用关闭页面上此表中的客户名称填充数组。