perl - 如何传递存储在变量中的xpath?

标签 perl selenium selenium-rc xpath

my $V1 = $sel->get_text("//body[\@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]/div/div/table/tbody/tr/td/div/div");
print($V1 . "\n");

当我执行上述命令时,我可以毫无错误地打印 v1。

我的目标是打印这些值(比如 20 左右)。但每个变量的 xpath 仅因 div 元素而变化(即,table 之前的 div 元素应替换为 div[2] 、div[2] 应在每次迭代中替换为 div[3]

以下代码片段替换了 div[] 元素。但说xpath无效。

my $xpath = q(//body[\@id='ext-gen3']/div[14]/div[2]/div/div/div/div/div/div/div/div/div/div[2]/div/div/table/tbody/tr/td/div/div);  
for my $i (0,2) 
{     
my @nodes = split qr'/', $xpath;     
$nodes[16] .= "[$i]" unless 0 == $i;     
#say join '/', @nodes; }
my @somenames = join('/',@nodes);
#print "\n";
#print @somenames ;
foreach my $val (@somenames) {
    chomp($val);
    #my @new_arr = $sel->get_text($val);
    print "\n";
    print $val; ***this prints the xpath value which i needed***
    my $V1 = $sel->get_text("$val"); ***#i'm passing the same xpath here within double quotes but says as invalid xpath***
     print($V1 . "\n");
    my @new_arr = $sel->get_text("$val");
  } 
}

我是否遵循了错误的 xpath 传递方式?我该怎么做?

最佳答案

比较 XPath 字符串的定义 with mine in the previous answer 。您在不属于的广告前面插入了反斜杠。

关于perl - 如何传递存储在变量中的xpath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11221104/

相关文章:

perl - 如何使用 LWP::UserAgent 接受 gzip 压缩的内容?

ios - 如何使用 appium 在真实设备上关闭 iOS 应用程序

java - 如何使用 Selenium RC for Eclipse Java 将文本输入到 tinymce 文本区域

maven - Jacoco 和 Sonar 代码覆盖率?

javascript - 启动 Selenium RC 时无法加载 user-extensions.js 中的自定义命令

perl - Perl替换运算符可以匹配数组中的元素吗?

Perl - TAP::Harness 和 test_args

Python Selenium - 如何指定要在客户端 SSL 身份验证中使用的客户端证书

regex - 在 Perl 正则表达式中转义 @

java - 如何列出 Selenium 中的复选框?