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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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 处理评级小部件_Selenium_Firefox_Tripadvisor - Fatal编程技术网

Selenium 处理评级小部件

Selenium 处理评级小部件,selenium,firefox,tripadvisor,Selenium,Firefox,Tripadvisor,尝试为[tripadvisor]中的所有三个气泡评级小部件都给出五颗星,如下面的截图所示,代码如下,但在chrome中只单击了第一个评级小部件。 在Firefox中,它会抛出MoveTargetOutOfBoundsException 链接 代码 浏览器快照 您正在使用的Id是动态的。请尝试使用以下xpath 浏览器快照 更新: 对于firefox浏览器,您需要滚动以获得元素的焦点,然后执行操作 ((JavascriptExecutor) driver).executeScript("argu

尝试为[tripadvisor]中的所有三个气泡评级小部件都给出五颗星,如下面的截图所示,代码如下,但在chrome中只单击了第一个评级小部件。 在Firefox中,它会抛出MoveTargetOutOfBoundsException

链接

代码

浏览器快照
您正在使用的Id是动态的。请尝试使用以下xpath

浏览器快照

更新:

对于firefox浏览器,您需要滚动以获得元素的焦点,然后执行操作

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[1]"))));
 new Actions(driver).moveToElement(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[1]"))), 50, 0).click().build().perform();
 ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[2]"))));
 new Actions(driver).moveToElement(new WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[2]"))), 50, 0).click().build().perform();
 ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[3]"))));
 new Actions(driver).moveToElement(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[3]"))), 50, 0).click().build().perform();

您使用的是哪种编程语言?.Java@hietshkumart您标识为cssSelectorqid12_气泡、cssSelectorqid13_气泡和cssSelectorqid1_气泡的元素可能/可能在同一次运行中不可见,因为第二项是一个变量。您是如何获得这些XPath的@Kunduki如果您转到chrome开发工具,您将找到这些xpath。以Hotel ratings标记为目标,然后跟随span标记。无需使用Thread.sleep,因为您已经在使用显式等待。另一个问题是,当我在firefox中运行它时,它会抛出一个名为MoveTargetOutOfBound@SaiSharan:在firefox上查看我的更新答案并让我知道状态?您需要滚动元素,然后使用动作课。
new Actions(driver).moveToElement(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[1]"))), 50, 0).click().build().perform();
new Actions(driver).moveToElement(new WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[2]"))), 50, 0).click().build().perform();
new Actions(driver).moveToElement(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[3]"))), 50, 0).click().build().perform();
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[1]"))));
 new Actions(driver).moveToElement(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[1]"))), 50, 0).click().build().perform();
 ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[2]"))));
 new Actions(driver).moveToElement(new WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[2]"))), 50, 0).click().build().perform();
 ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[3]"))));
 new Actions(driver).moveToElement(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[text()='Hotel Ratings']/following::span[3]"))), 50, 0).click().build().perform();